public class NotificationBeforeExpiryDateService : BackgroundService
{
private readonly ILogger<NotificationBeforeExpiryDateService> _logger;
private readonly BackgroundServicesConfiguration _configuration;
private readonly NotificationBeforeExpiryDateHandler _NotificationBeforeExpiryDate;
public NotificationBeforeExpiryDateService(ILogger<NotificationBeforeExpiryDateService> logger,
IOptions<BackgroundServicesConfiguration> options,
lNotificationBeforeExpiryDateHandler NotificationBeforeExpiryDate)
{
_logger = logger;
_configuration = options?.Value ?? throw new ArgumentNullException();
_NotificationBeforeExpiryDate = NotificationBeforeExpiryDate;
}
protected override async Task ExecuteAsync(CancellationToken stoppingToken)
{
_logger.LogInformation($"Start adding ({nameof(NotificationBeforeExpiryDateService)}) Job-2...");
var recurringTimeIntervalEmail = _configuration
.Services
.FirstOrDefault(s => s.Name == BackgroundServiceCofigKey.NotificationBeforeExpiry)
.RecurringTimeIntervalEmail;
BackgroundJob.Enqueue(() => _NotificationBeforeExpiryDate.Execute());//, recurringTimeIntervalEmail, TimeZoneInfo.Local);
_logger.LogInformation($"End adding Recurring Job-2...");
await Task.CompletedTask;
}
}
}
我正在使用这些代码行在我的 Execute 方法中发送电子邮件通知,在该方法中我向用户发送电子邮件,但每次我无法停止任何解决方案时,BackgroundJob.Enqueue都在没有任何限制的情况下运行。