Update distributed lock for cronservice
This commit is contained in:
parent
03a6cea0fc
commit
e4c53a32b5
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
});
|
||||
|
|
|
|||
Loading…
Reference in a new issue