Merge pull request #1156 from visagang/features/vguruparan
Update distributed lock for cronservice
This commit is contained in:
commit
7a301dc9e4
|
|
@ -4,6 +4,7 @@ public class CrontabSettings
|
||||||
{
|
{
|
||||||
public CrontabBaseSetting EventSubscriber { get; set; } = new();
|
public CrontabBaseSetting EventSubscriber { get; set; } = new();
|
||||||
public CrontabBaseSetting Watcher { get; set; } = new();
|
public CrontabBaseSetting Watcher { get; set; } = new();
|
||||||
|
public string LockName { get; set; } = "CrontabWatcher:locker";
|
||||||
}
|
}
|
||||||
|
|
||||||
public class CrontabBaseSetting
|
public class CrontabBaseSetting
|
||||||
|
|
|
||||||
|
|
@ -10,11 +10,15 @@ public class CrontabWatcher : BackgroundService
|
||||||
{
|
{
|
||||||
private readonly ILogger _logger;
|
private readonly ILogger _logger;
|
||||||
private readonly IServiceProvider _services;
|
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;
|
_logger = logger;
|
||||||
_services = services;
|
_services = services;
|
||||||
|
_cronSettings = cronSettings;
|
||||||
|
DIST_KEY = _cronSettings.LockName;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override async Task ExecuteAsync(CancellationToken stoppingToken)
|
protected override async Task ExecuteAsync(CancellationToken stoppingToken)
|
||||||
|
|
@ -29,7 +33,7 @@ public class CrontabWatcher : BackgroundService
|
||||||
{
|
{
|
||||||
var delay = Task.Delay(1000, stoppingToken);
|
var delay = Task.Delay(1000, stoppingToken);
|
||||||
|
|
||||||
await locker.LockAsync("CrontabWatcher:locker", async () =>
|
await locker.LockAsync(DIST_KEY, async () =>
|
||||||
{
|
{
|
||||||
await RunCronChecker(scope.ServiceProvider);
|
await RunCronChecker(scope.ServiceProvider);
|
||||||
});
|
});
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue