У меня есть приложение весны, которое использует org.springframework.scheduling.quartz.SimpleTriggerBean
, чтобы запланировать выполнение метода на регулярной основе.Весна, выполнение фона или по запросу
Иногда я хочу назвать тот же метод «по требованию». Это действие будет инициировано действием GUI. Поскольку метод, который я хочу выполнить, занимает пару секунд, я не хочу блокировать пользовательский графический интерфейс до завершения выполнения. Более того, я хочу координировать выполнение «по требованию» с фоновым потоком (взаимоисключающим).
Вот один подход:
- Создать Bean называется менеджер, который использовать TaskExecutor запланировать задачу. Менеджер имеет метод Manager.scheduleTask()
- И фон и «по требованию» потоки будут называть один и тот же метод на Управляющего (Manager.scheduleTask)
- задача выполняется в Синхронизировать чтобы гарантировать выполнение только одной задачи .
Я ищу более умные/чистые решения.
Прикреплено ли вы к кварцу, или вы считаете, что его нужно прокладывать для чего-то более простого? – skaffman
Я не привязан к кварцу. Я просто использую его, потому что легко интегрироваться с Spring. У вас есть идеи без использования кварца? –