Merge pull request #1156 from visagang/features/vguruparan

Update distributed lock for cronservice
This commit is contained in:
Haiping 2025-09-09 13:16:10 -05:00 committed by GitHub
commit 7a301dc9e4
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
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; } = "CrontabWatcher:locker";
}
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 = _cronSettings.LockName;
}
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);
});