当您有多个服务器时,像quartz 这样的作业调度程序将如何工作?
当您有多个服务器都运行同一个 Web 应用程序时,如何确保多个作业不会被解雇(同一个作业)?
您是否必须使用数据库来监视作业是否已运行?
When you have multiple servers all running the same web application, how would you make sure multiple jobs don't get fired off (the same job)?
Would you have to use the database to monitor if the job was already run?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我通过只让其中一台服务器运行计划的作业解决了这个问题。如果该作业服务器出现故障,我会重新配置另一台服务器以开始在其位置运行作业。就我而言,工作并不是那么重要,因此我可以负担得起这种类型的“冷备用”解决方案。
然而还有其他选择,Quartz 可以与集群调度程序和作业存储一起运行。 在此处了解更多信息。
I've solved this by only letting one of the servers run the scheduled jobs. If that job server goes down I reconfigure another server to start running jobs in its place. In my case the jobs are not all that critical so I can afford this type of "cold standby" solution.
There are however alternatives, Quartz can run with clustered schedulers and job stores. Read more here.
请参阅http://quartz-scheduler.org/documentation/quartz-2。 x/configuration/ConfigJDBCJobStoreClustering 。 Quartz 似乎有一个开箱即用的机制。
See http://quartz-scheduler.org/documentation/quartz-2.x/configuration/ConfigJDBCJobStoreClustering . It appears that Quartz has a mechanism for this out of the box.