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.

153 lines
4.4 KiB

3 weeks ago

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