对于使用Ejb3 Scheduler(定时服务)的后端作业处理。调度程序包装在EAR文件中。我正在使用apache将此EAR部署到2个glassfish服务器以实现负载平衡。问题是2 glassfish启动了他们的Scheduler,这意味着同一个调度程序启动了2次。我需要在两个服务器之间划分工作,例如我有6个调度程序,然后3个调度程序由server1启动,而其他服务器将使用相同的EAR副本。
如果已启动一台服务器,您能建议如何提示启动调度程序吗?
感谢您的帮助
答案 0 :(得分:0)
我认为你有像环境这样的集群。在这种情况下,Singleton无济于事,因为每个JVM都有一个bean实例。
您可以使用临时数据库表作为公共参考点来存储计划作业详细信息。相应的时间表将从中选择一个工作/行。可能会相应地更新/删除执行结果状态/行。
因此,所有的日程安排都会从共同的位置选择,他们不会做多余的事情。否则,您可以将Quartz配置为这样的场景,作为替代方案配置到您的应用程序中。