Запуск кварцевого планировщика ежедневно в кластерной среде - PullRequest
0 голосов
/ 14 мая 2019

Требуется периодически запускать Java-приложение (например, ежедневно), чтобы отправлять клиентам по электронной почте / SMS-уведомления. Среда - кластер / высокая доступность, в которой одновременно будут активны более одного узла. Это приложение должно быть развернуто на всех узлах, но только один из них должен запускаться и работать, даже если все они настроены для работы. Как этого добиться. В Java-приложении используется Quartz Scheduler.

Также нужны некоторые рекомендации о том, как развернуть это Java-приложение на Linux-машине (например, задание Cron или другой способ). Требование заключается в том, что это приложение должно запускаться при запуске серверной системы и работать до тех пор, пока сервер не выйдет из строя. При повторном запуске сервера это задание также должно запускаться автоматически.

1 Ответ

1 голос
/ 17 мая 2019
The requirement is to run a java application periodically (say everyday for an example) to send out email/SMS notification to customers. 

Этого можно добиться с помощью Quartz, создав задание и соответствующий триггер, который сработает в определенное время.

The environment is cluster / high availability where more than one node will be active at the same time. This application is to be deployed on all the nodes but only one should start and run even though all of them are configured to run. How to achieve this

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

Also need some guidance on how to deploy this java application on Linux machine (like Cron job or some other way). 

Когда Quartz выполняет работу по планированию, нет необходимости создавать работу Linux Cron.

When the server starts again, this job should also start automatically.

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

Чтобы все вышеперечисленное работало, вы должны использовать JDBC Jobstore в кварце вместо RAMJobStore

...