Конфигурируйте Quartz.net только с одной нитью или создавайте темы последовательно - PullRequest
0 голосов
/ 02 декабря 2018

В моем сервисе есть бизнес, в котором я не знаю, сколько времени занимает поток, чтобы выполнить свою работу, поэтому я не могу установить точный интервал.Или по-другому, я хочу знать, как установить поток, начинающийся после того, как предыдущий сделал свою работу.

1 Ответ

0 голосов
/ 02 декабря 2018

Вы можете использовать атрибут DisallowConcurrentExecution на своих рабочих местах.Атрибут гарантирует, что следующее выполнение не начнется до тех пор, пока не будет завершено текущее выполнение.

[DisallowConcurrentExecution]
public class MyJob : IJob {
    // whatever your job is
}

Для последовательного создания потоков - я думаю, вы имеете в виду выполнение задания сразу после его завершения - вы можете использоватьодин из следующих сценариев:

  1. Установите свою работу RepeatForEver и установите интервал на очень низкое число, например, 10 мс

  2. Установите повторение задания наоднажды, после того, как это сделано, запланируйте новую (ту же самую) работу

Оба будут работать.

...