Java - создать рабочий процесс в Quartz - PullRequest
6 голосов
/ 13 октября 2009

Я планирую использовать платформу Quartz для планирования запуска нескольких сотен заданий.

В соответствии с их API, задания могут быть запланированы на выполнение в определенные моменты времени, но не запускаться одно за другим (и останавливать цепочку заданий в случае сбоя). Единственные рекомендуемые методы, которые мне удалось найти:

  • Использование слушателя, который замечает завершение задания и назначает следующий триггер для срабатывания (как это согласовать?)
  • Каждое задание получит параметр, содержащий следующее задание для запуска, и после завершения фактического задания запланирует его запуск. (Кооператив)

Знаете ли вы лучший способ создания рабочих процессов в Quartz?

Можете ли вы порекомендовать другие методы / рамки для реализации рабочего процесса в Java?

РЕДАКТИРОВАНИЕ: Тем временем я узнал о OSWorkflow , который, кажется, подходит для того, что мне нужно. Похоже, что мне нужно реализовать " шаблон последовательности ".

Ответы [ 4 ]

2 голосов
/ 13 октября 2009

Когда в документации Quartz говорится о «Job», это относится к классу, реализующему интерфейс «Job», который на самом деле представляет собой любой класс с методом «execute», который принимает объект Quartz Context. При создании этой реализации вы действительно можете делать все, что захотите.

Вы можете создать реализацию Кварцевого интерфейса заданий, который просто вызывает все задания в вашем рабочем процессе последовательно и генерирует исключение JobExecutionException при сбое.

1 голос
/ 13 октября 2009

Звучит так, будто вы хотите, чтобы Кварц запланировал первую работу и связал все, что с ней связано.

Рассматривали ли вы инкапсуляцию каждой задачи с использованием шаблона команды и их связывание?

0 голосов
/ 22 июля 2015

Для поддержки цепочки заданий в Quartz вы можете проверить проект QuartzDesk , в котором я принимал участие. В версии 2.0. мы добавили мощный механизм цепочек заданий , который позволяет вам управлять вашими кварцевыми заданиями без необходимости изменять код приложения.

Механизм обеспечивает передачу результата выполнения задания и других параметров из исходного задания в связанное целевое задание.

QuartzDesk поставляется с графическим интерфейсом, который позволяет динамически обновлять цепочки заданий, не нарушая работу приложения.

enter image description here

0 голосов
/ 20 июня 2013

Я работал над проектом под названием Динамический планировщик задач , который использует Quartz для выполнения цепочек заданий , реализующих простой рабочий процесс отказоустойчивым способом (определенным в формате XML).

Взгляните на http://sourceforge.net/projects/dynatasksched/
Проект бета, но я думаю, что он может дать вам несколько идей для начала ..

Надеюсь, это полезно!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...