You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

206 lines
5.5 KiB

2 months ago

2 months ago
using Magicodes.ExporterAndImporter.Excel;
2 months ago
using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
2 months ago
using Microsoft.Extensions.Configuration;
2 months ago
using Microsoft.Extensions.DependencyInjection;
2 months ago
using OfficeOpenXml.FormulaParsing.Excel.Functions.Text;
2 months ago
using System;
using System.Collections.Generic;
using System.Linq;
2 months ago
using System.Linq.Expressions;
2 months ago
using System.Text;
using System.Threading.Tasks;
using TaskManager.Controllers;
using TaskManager.Entity;
using TaskManager.EntityFramework;
2 months ago
using TaskManager.EntityFramework.Repository;
using Wood.Service.Controllers;
using System;
using System.Threading;
using System.Threading.Channels;
using System.Threading.Tasks;
2 months ago
namespace TaskManager.Controllers
{
1 month ago
public class LogController
2 months ago
{
1 month ago
private readonly Channel<TaskLog> _logChannel;
4 weeks ago
public LogController(int bufferSize = 10000)
2 months ago
{
1 month ago
// 创建有界通道,设置缓冲区大小
var options = new BoundedChannelOptions(bufferSize)
{
FullMode = BoundedChannelFullMode.Wait
};
_logChannel = Channel.CreateBounded<TaskLog>(options);
2 months ago
}
2 months ago
1 month ago
public void EnqueueLog(TaskLog log)
2 months ago
{
1 month ago
_logChannel.Writer.TryWrite(log);
2 months ago
}
1 month ago
//private readonly LogBackgroundService _logService;
//public LogController(JobDbContext context, IServiceProvider builder, IConfiguration configuration, IRepository<TaskLog> repository, LogBackgroundService logService) : base(context, builder, configuration, repository)
1 month ago
//{
1 month ago
// _logService = logService;
1 month ago
//}
1 month ago
//[HttpGet]
//public async Task<List<TaskLog>> GetAll()
1 month ago
//{
1 month ago
// var log = await _context.TaskLogs.ToListAsync();
// return log;
1 month ago
//}
1 month ago
public ChannelReader<TaskLog> GetLogReader()
{
return _logChannel.Reader;
}
1 month ago
4 weeks ago
/// <summary>
///
/// </summary>
/// <param name="message"></param>
/// <param name="taskname"></param>
/// <param name="taskid"></param>
/// <param name="version"></param>
/// <returns></returns>
1 month ago
1 month ago
[NonAction]
4 weeks ago
1 month ago
//[HttpGet("AddError")]
1 month ago
public async Task<bool> AddError(string message, string taskname, Guid taskid, string version)
2 months ago
{
1 month ago
var log = new TaskLog
2 months ago
{
1 month ago
Info = message,
Type = "错误",
TaskName = taskname,
CreationTime = DateTime.Now,
TaskId = taskid,
4 weeks ago
Version = version
1 month ago
};
1 month ago
EnqueueLog(log);
4 weeks ago
1 month ago
return true; // 日志已入队,视为成功
2 months ago
}
[NonAction]
//[HttpGet("AddError")]
public async Task<bool> AddError(string message, string taskname, Guid taskid, string version,string json)
{
var log = new TaskLog
{
Info = message,
Type = "错误",
TaskName = taskname,
CreationTime = DateTime.Now,
TaskId = taskid,
4 weeks ago
Version = version,
Remark = json
};
EnqueueLog(log);
4 weeks ago
return true; // 日志已入队,视为成功
}
1 month ago
[NonAction]
//[HttpGet("AddInfo")]
1 month ago
public async Task<bool> AddInfo(string message, string taskname, Guid taskid, string version)
2 months ago
{
1 month ago
var log = new TaskLog
{
Info = message,
Type = "信息",
TaskName = taskname,
CreationTime = DateTime.Now,
TaskId = taskid,
Version = version?.ToString()
};
1 month ago
EnqueueLog(log);
4 weeks ago
1 month ago
return true;
}
4 weeks ago
[NonAction]
public async Task<bool> AddSuccess(string message, string taskname, Guid taskid, string version)
{
var log = new TaskLog
{
Info = message,
Type = "成功",
TaskName = taskname,
CreationTime = DateTime.Now,
TaskId = taskid,
Version = version?.ToString()
};
EnqueueLog(log);
return true;
}
1 month ago
[NonAction]
//[HttpGet("AddPostRequest")]
public async Task<bool> AddPostRequest(string message, string taskname, Guid taskid, string version, string remark)
1 month ago
{
var log = new TaskLog
2 months ago
{
1 month ago
Info = message,
Type = "请求",
TaskName = taskname,
CreationTime = DateTime.Now,
TaskId = taskid,
Version = version?.ToString(),
1 month ago
Remark = remark
1 month ago
};
1 month ago
EnqueueLog(log);
//_context.TaskLogs.Add(log);
//var result = await _context.SaveChangesAsync();
1 month ago
return true;
}
1 month ago
[NonAction]
//[HttpGet("AddPostResponse")]
public async Task<bool> AddPostResponse(string message, string taskname, Guid taskid, string version, string remaek)
1 month ago
{
var log = new TaskLog
{
Info = message,
Type = "应答",
TaskName = taskname,
CreationTime = DateTime.Now,
TaskId = taskid,
Version = version?.ToString(),
1 month ago
Remark = remaek
1 month ago
};
1 month ago
EnqueueLog(log);
1 month ago
return true;
2 months ago
}
1 month ago
1 month ago
2 months ago
2 months ago
}
1 month ago
}