У меня есть несколько заданий на кварце. С помощью атрибута DisallowConcurrentExecution они не выполняются одновременно. Но если они срабатывают в одно время, одна работа пропущена. Как его исправить (поставить в очередь)? Я пытался использовать Mutex, но в результате задания запускались и выполнялись одновременно, прерывая друг друга. Я хочу, чтобы все было сделано, второе начнется после/Что делать?Как разместить вакансии в квартете
ответ
Для этого вы можете использовать JobChainingJobListener. Он прислушивается к завершению вашей работы, а затем запускает следующее задание в списке и так далее.
Посмотрите на the code, чтобы узнать, как это работает, если вы хотите сделать это самостоятельно.
Благодарим вас за консультацию. Если я напишу это в listener - chainLinks.Add (firstJob, secondJob, thirdJob); - будет ли он выполнен как 1-й, затем 2-й, 3-й или выполнить оба или одно из следующего задания до расписания? Например, если после 1-го должен срабатывать только 3-й по расписанию, это сработает? – Lili
Последовательный прослушиватель будет выполнять второе задание после первого завершения, независимо от расписания второго задания. Они независимы. – jvilalta
Я нашел пример кода с использованием JobChainingJobListener здесь: [Ссылка на StackOverflow должность] [1] [1]: http://stackoverflow.com/questions/24515470/jobs-not- chaining-using-jobchainingjoblistener – Bronek
Я думаю, вы можете использовать ** lock ** для вашего метода работы, когда он срабатывает, и он поможет вам работать последовательно. –