/
spirzen
/
it-code-examples
Обзор
Документация
Войти
/
spirzen
/
it-code-examples
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
examples/csharp/csharp-505-452-033/main.cs
24 строки
916 B
Spirzen
Code migration pack
09 июн 2026, 01:41
09 июн 2026, 01:41
cebc284
Код
Авторство
О чём код?
public class DistributedBackgroundService : BackgroundService { private readonly IDistributedLockFactory _lockFactory; public DistributedBackgroundService(IDistributedLockFactory lockFactory) => _lockFactory = lockFactory; protected override async Task ExecuteAsync(CancellationToken stoppingToken) { while (!stoppingToken.IsCancellationRequested) { using var lockHandle = await _lockFactory.CreateLock("backup-lock", TimeSpan.FromMinutes(10)); if (await lockHandle.TryAcquireAsync(stoppingToken)) { await DoWork(stoppingToken); await Task.Delay(TimeSpan.FromHours(24), stoppingToken); // следующий запуск } else { await Task.Delay(TimeSpan.FromMinutes(1), stoppingToken); // повторить позже } } } }