计划任务与多个服务器
我们有一个Spring + JPA web应用程序。 我们使用两个运行这两个应用程序并使用相同数据库的tomcat服务器。
我们的一个应用程序需要执行cron scheduled任务。
经过短时间的研究,我们发现Spring框架为cron作业提供了一个非常直接的解决方案(基于Annotation的解决方案)
然而,因为两个tomcat运行相同的webapp - 如果我们将使用这个spring的解决方案,我们将创建一个非常有问题的场景,其中2个cron同时运行(每个tomcat都在不同的tomcat上)
有什么办法可以解决这个问题吗? 也许这种选择对我们的目的不好?
谢谢!
作为一般规则,您将要保存设置以指示作业正在运行。 与“Spring Batch”如何操作相似,您可能想要在数据库中创建一个表,仅用于存储作业执行。 你可以选择实现,但是最终你的计划任务应该检查数据库,看看是否有相同的任务正在运行,如果没有,请继续执行任务。 任务完成后,请适当更新数据库,以便将来的执行能够继续。
@ kungfuters解决方案当然是一个更好的最终目标,但作为一个简单的第一个实现,您可以使用属性来启用/禁用任务,并且只将任务运行在其中一台服务器上。
链接地址: http://www.djcxy.com/p/75131.html上一篇: Scheduled tasks with multiple servers
下一篇: Visual Studio 2012 failing to detect Visual Studio 2008 build tools