0

对于使用 Ejb3 调度程序(定时器服务)的后端作业处理。调度程序被打包在一个 EAR 文件中。我正在将此 EAR 部署到 2 个带有 apache 的 glassfish 服务器以实现负载平衡。问题是 2 个 glassfish 启动了它们的调度程序,这意味着同一个调度程序启动了 2 次。我需要在 2 个服务器之间划分作业,例如我有 6 个调度程序,然后 3 个调度程序由 server1 启动,其他服务器将使用相同的 EAR 副本。

如果一台服务器已经启动,您能否建议如何提示启动调度程序?

谢谢你的帮助

4

1 回答 1

0

我想你有类似集群的环境。在这种情况下,单例将无济于事,因为每个 JVM 都有一个 bean 实例。

您可以使用临时数据库表作为公共参考点来存储计划作业的详细信息。相应的计划将从其中选择一个作业/行,并可能相应地更新/删除执行结果状态/行。

因此,所有的时间表都会从共同的位置挑选,他们不会做多余的事情。否则,您可以将 Quartz 配置到您的应用程序中作为替代方案。

于 2013-01-07T06:37:06.240 回答