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

4 weeks ago

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