Quartz. NET - Сценарии 

Page / - Изменено Alexandr Fokin в 2024/04/22 12:09 

Сценарии 
Изменено Alexandr Fokin
в 2024/04/22 12:09

Оглавление

Запустить задачу сейчас	public async Task TryRunNowWorkerAsync(
   string name,
    CancellationToken cancellationToken
    )
{
var jobKey = /* .. */;

// Проверка кол-ва сузествующих триггеров, 
// если их больше определенного кол-ва,
// то нет смысла создавать еще один триггер-запуска.
   {
       var triggers = await scheduler.GetTriggersOfJob(jobKey, cancellationToken);
       if (triggers.Count > n)
        {
           return;
        }
    }
   
// Создает триггер одноразового запуска.
   await scheduler.TriggerJob(jobKey, cancellationToken);
}	При InMemory хранилище внутри используются блокировки.
Поэтому при высокой интенсивности лучше сделать отдельный поток (Task), который будут накапливать заявки и периодически запускаться.
При этом так, чтобы запись заявки была быстрой и неблокирующей.