74 lines
2.4 KiB
C#
74 lines
2.4 KiB
C#
using AutoDispathingWork.Utils;
|
|
using Microsoft.Extensions.Options;
|
|
using WorkerService1.Domains;
|
|
using WorkerService1.Dto.Configuration;
|
|
using WorkerService1.Services;
|
|
|
|
namespace WorkerService1;
|
|
|
|
public class CloseWorker : BackgroundService
|
|
{
|
|
private readonly ILogger<CloseWorker> _logger;
|
|
|
|
public CloseWorker(ILogger<CloseWorker> logger)
|
|
{
|
|
_logger = logger;
|
|
}
|
|
|
|
protected override async Task ExecuteAsync(CancellationToken stoppingToken)
|
|
{
|
|
while (!stoppingToken.IsCancellationRequested)
|
|
{
|
|
using var scope = StaticServiceProvider.Current.CreateScope();
|
|
var settingServices = scope.ServiceProvider.GetRequiredService<SettingServices>();
|
|
var options = settingServices.GetClientOptions();
|
|
if (_logger.IsEnabled(LogLevel.Information))
|
|
{
|
|
_logger.LogInformation("Worker running at: {time}", DateTimeOffset.Now);
|
|
}
|
|
|
|
try
|
|
{
|
|
if (options.CloseFileRunning)
|
|
await Handle();
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
$"执行控制器发生错误,错误信息:ex{e.StackTrace}".Error();
|
|
}
|
|
finally
|
|
{
|
|
await Task.Delay(options.Delay, stoppingToken);
|
|
}
|
|
}
|
|
}
|
|
|
|
private async Task Handle()
|
|
{
|
|
var _spiderServices = StaticServiceProvider.Current.GetRequiredService<SpiderServices>();
|
|
var listRes = await _spiderServices.GetTaskList(3);
|
|
if (listRes.IsSuccess)
|
|
{
|
|
var needDispose = listRes.Result?.records;
|
|
//轮询列表,看有没有符合状态的进行处理
|
|
if (needDispose?.Any() ?? false)
|
|
{
|
|
foreach (var item in needDispose)
|
|
{
|
|
//2.结案操作
|
|
var result = await _spiderServices.CloseFile(item.caseNumber, "");
|
|
if (result.IsSuccess)
|
|
{
|
|
var message = $"结案成功,任务编号:{item.caseNumber},任务地址:{item.address},任务类型:{item.typeCode}";
|
|
message.Info();
|
|
}
|
|
else
|
|
{
|
|
var message = $"结案失败,错误信息:{result.Message}";
|
|
message.Error();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} |