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(); while (!stoppingToken.IsCancellationRequested) { try { await assignRuleDomain.AutoUpAssignRule(); } catch (Exception ex) { Log.Error(ex, "自动上下线失败!"); } await Task.Delay(1 * 60 * 1000, stoppingToken); } } } }