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

1 month ago

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