2011-12-08 33 views
3

在我的应用程序中,我需要定期运行后台任务(我可以使用Quartz轻松完成 - 即安排给定的作业在特定时间定期运行)。什么框架可用于Java中的高级作业调度?

但我想多一点控制。我特别需要:

  1. 有重新运行,这不是在其计划时间运行(即服务器关闭,并因为这个任务不运行在这种情况下我想要的任务系统。 '后期'任务需要尽快运行)
  2. 很容易控制任务 - 即按需运行任务或查看给定任务上次运行的时间或重新安排在不同时间运行的给定任务

在我看来,以上几点可以通过Spring Batch Admin实现,但我在这方面还没有太多经验。另外,我已经看到许多关于Spring Batch如何不是一个调度工具的文章,所以我开始怀疑这个工作的正确工具是什么。

所以我的问题是:上面可以实现与Spring批处理管理?或者也许Quartz就足够了,但需要配置来完成上述操作?或者,也许我需要两个?或者是其他东西?

感谢很多:) 彼得

回答

4

有重新运行,这不是在其预定时间运行

此功能在Quartz称为Misfire Instructions和不正是一个任务系统你需要 - 但是更加灵活。所有你需要的是定义JDBCJobStore

这将是很好很容易地控制任务 - 即按需运行任务或看到,当一个给定的任务上次运行或重新安排给定的任务在不同的时间

您可以将运行使用Quartz JMX来访问各种信息(如上一个和下一个运行时间)或直接查询Quartz数据库表。上述输入中还有免费和商业管理工具。我相信你也可以在那里手动运行作业。

Spring Batch可以是集成与石英,但不能取代它。

+0

谢谢Tomek,JDBCJobStore似乎是我需要的。 Dzięki:) – machinery