Update distributed lock for cronservice

This commit is contained in:
vguruparan 2025-09-09 11:19:29 -05:00
parent 03a6cea0fc
commit e4c53a32b5
2 changed files with 7 additions and 2 deletions

View file

@ -4,6 +4,7 @@ public class CrontabSettings
{
public CrontabBaseSetting EventSubscriber { get; set; } = new();
public CrontabBaseSetting Watcher { get; set; } = new();
public string LockName { get; set; }
}
public class CrontabBaseSetting

View file

@ -10,11 +10,15 @@ public class CrontabWatcher : BackgroundService
{
private readonly ILogger _logger;
private readonly IServiceProvider _services;
private readonly CrontabSettings _cronSettings;
private string DIST_KEY;
public CrontabWatcher(IServiceProvider services, ILogger<CrontabWatcher> logger)
public CrontabWatcher(IServiceProvider services, ILogger<CrontabWatcher> logger, CrontabSettings cronSettings)
{
_logger = logger;
_services = services;
_cronSettings = cronSettings;
DIST_KEY = $"CrontabWatcher:locker-{_cronSettings.LockName ?? "default"}";
}
protected override async Task ExecuteAsync(CancellationToken stoppingToken)
@ -29,7 +33,7 @@ public class CrontabWatcher : BackgroundService
{
var delay = Task.Delay(1000, stoppingToken);
await locker.LockAsync("CrontabWatcher:locker", async () =>
await locker.LockAsync(DIST_KEY, async () =>
{
await RunCronChecker(scope.ServiceProvider);
});