Как запустить только один экземпляр задания NCron в любое время

Я исследую NCron, который будет использоваться в качестве хоста планировщика для запуска нескольких заданий sftp. Есть ли способ ограничить выполнение задания, если уже запущен существующий экземпляр? Я прошел через вики, но не могу найти никаких подробностей по этому вопросу.

1 ответ

Обеспечение того, чтобы задание не выполнялось несколько раз параллельно, может быть выполнено путем переноса тела Execute() метод в lock блок. Однако из-за характера lock Это означает, что выполнение заданий, о которых идет речь, ставится в очередь, что может или не может быть тем, что вы хотите.

Если вы предпочитаете, чтобы выполнение задания было пропущено, когда задание уже запущено, это можно решить с помощью static bool и немного lock, if а также try, Вот первая и непроверенная попытка создания базового класса для таких заданий: https://gist.github.com/schourode/7639291

Я хотел бы получить отзывы об этом эксперименте. В случае успеха это вполне может сделать его сборкой ядра NCron.

Другие вопросы по тегам