Java中用于高级作业调度的框架是什么?

mac*_*ery 5 java scheduling quartz-scheduler spring-batch-admin

在我的应用程序中,我需要定期运行后台任务(我可以使用Quartz轻松地完成该任务-即安排要在特定时间定期运行的给定作业)。

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

  1. 让系统重新运行未按计划的时间运行的任务(即服务器已关闭,因此未运行该任务。在这种情况下,我希望“后代”任务尽快运行)
  2. 轻松控制任务会很好-即按需运行任务,或者查看给定任务的最后运行时间,或重新安排给定任务在不同时间运行

在我看来,以上几点可以通过Spring Batch Admin来实现,但是我在这方面还没有很多经验。另外,我已经看到很多关于Spring Batch不是调度工具的文章,所以我开始怀疑这里应该使用哪种合适的工具。

所以我的问题是:以上内容可以通过Spring Batch Admin实现吗?也许Quartz就足够了,但需要配置以完成上述操作?还是我都需要?或者是其他东西?

非常感谢:)彼得

Tom*_*icz 5

让系统重新运行未在计划的时间运行的任务

Quartz中的这项功能称为Misfire指令,它完全可以满足您的需求-但更加灵活。您只需要定义即可JDBCJobStore

轻松控制任务会很好-即按需运行任务,或者查看给定任务的最后运行时间,或重新安排给定任务在不同时间运行

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

Spring Batch可以与Quartz 集成,但不能替换。