Zxd.Core/code/Zxd.Crm.WebApi/Workers/AssignRuleWorker.cs

33 lines
1.0 KiB
C#

using Zxd.Crm.Domain.Impl;
using Zxd.Crm.Domain.Impl.AssignRule;
namespace Zxd.WebApi.Workers
{
public class AssignRuleWorker : BackgroundService
{
private readonly IServiceProvider _serviceProvider;
public AssignRuleWorker(IServiceProvider serviceProvider)
{
_serviceProvider = serviceProvider;
}
protected override async Task ExecuteAsync(CancellationToken stoppingToken)
{
using var scope = _serviceProvider.CreateAsyncScope();
var assignRuleDomain = scope.ServiceProvider.GetRequiredService<IAssignRuleDomain>();
while (!stoppingToken.IsCancellationRequested)
{
try
{
await assignRuleDomain.AutoUpAssignRule();
}
catch (Exception ex)
{
Log.Error(ex, "自动上下线失败!");
}
await Task.Delay(1 * 60 * 1000, stoppingToken);
}
}
}
}