gpt4 book ai didi

java - 每天在集群环境中运行 Quartz Scheduler

转载 作者:行者123 更新时间:2023-12-02 09:54:00 25 4
gpt4 key购买 nike

要求是定期运行 java 应用程序(例如每天)以向客户发送电子邮件/短信通知。该环境是集群/高可用性,其中多个节点将同时处于 Activity 状态。该应用程序将部署在所有节点上,但即使所有节点都配置为运行,也只能启动并运行一个应用程序。如何实现这一目标。在 Java 应用程序中,使用了 Quartz Scheduler。

还需要一些有关如何在 Linux 计算机上部署此 java 应用程序的指导(例如 Cron 作业或其他方式)。要求是该应用程序应在服务器系统启动时启动,并永远运行直到服务器出现故障。当服务器再次启动时,该作业也应该自动启动。

最佳答案

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

Quartz 调度程序通过数据库支持集群机制。如果两个或多个调度程序具有相同的名称但不同的实例 ID,它们将形成集群,唯一需要注意的是所有应用程序节点应指向同一个数据库。

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.

Quartz 可以处理未触发的触发器,因此如果应用程序出现故障,quartz 将在应用程序启动时扫描未触发的触发器并安排它们。

为了让上述事情发挥作用,你应该在quartz中使用 JDBC Jobstore 而不是 RAMJobStore

关于java - 每天在集群环境中运行 Quartz Scheduler,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56137512/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com