Планирование задач с помощью Spring с данными cron, хранящимися в сущностях - PullRequest
1 голос
/ 12 октября 2010

Я хотел бы запускать задачи cron на основе сущности, давайте вызовем эту сущность TaskEntity

TaskEntity может иметь информацию о том, что необходимо сделать (для конкретного домена) и когда.Когда часть может быть задана в хронологическом порядке

Изначально я думал о поиске Кварца, но не смог найти четких примеров

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

1 Ответ

0 голосов
/ 03 февраля 2011

Я думаю, что самое простое решение - использовать планировщик.

При запуске прочитайте все ваши сущности и рассчитайте время следующего запуска задачи.

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

Для этого вы можете использовать org.quartz.Scheduler.Подробности смотрите в документации: http://www.quartz -scheduler.org / docs / index.html

Это будет выглядеть примерно так.(Ваша работа должна реализовывать интерфейс org.quartz.Job)

Trigger trigger = new SimpleTrigger( "jobname", "scheduler group name", dateTime );
scheduler.scheduleJob( jobDetail, trigger );
...