hangfire - Hangfire BackgroundJob.Enqueue 运行多次而不是只运行一次
问题描述
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都在没有任何限制的情况下运行。
解决方案
推荐阅读
- r - 尽管测试集的预测很低,但可以使用 R 中的 randomForest 来确定变量重要性吗?
- windows - 通过命令行以人类可读的格式导出 DB2 模式?
- php - 查看所有存在的帐户中的特定帐户时显示特定的用户信息
- r - 重新格式化强制转换为数据框的包装数据?(右)
- vue.js - Vue Js Axios 获取方法
- nginx - NGINX 禁用特定位置的身份验证
- winforms - 运行多个脚本实例
- cobol - INITIALIZE 在 PIC X 和 PIC S9 COMP 变量上给出垃圾值
- android - UART 通信不适用于默认图像 Android Things
- java - 为什么 jruby 不关闭数据库连接?