在我的应用程序中,我需要定期运行后台任务(我可以轻松地使用Quartz – 即安排给定的作业定期在特定时间运行).
但是我希望能有更多的控制权.特别是我需要:
>让系统重新运行未在其预定时间运行的任务(即服务器已关闭,因此任务未运行.在这种情况下,我希望尽快运行’延迟’任务)
>轻松控制任务会很好 – 即按需运行任务或查看上次运行给定任务的时间或重新安排在不同时间运行的给定任务
在我看来,使用Spring Batch Admin可以实现上述几点,但我在这方面还没有太多经验.另外,我已经看过很多关于Spring Batch如何不是一个调度工具的帖子,所以我开始怀疑这个工作的正确工具是什么.
所以我的问题是:可以通过Spring Batch Admin实现上述目标吗?或者Quartz足够但需要配置才能完成上述操作?或许我需要两者兼而有之?或者是其他东西?
非常感谢 :)
彼得
解决方法:
have the system rerun a task that wasn’t run at its scheduled time
Quartz中的此功能称为Misfire Instructions,完全符合您的需求 – 但更灵活.您所需要的只是定义JDBCJobStore
.
it would be nice to easily control tasks – i.e. run a task on demand or see when a given task was last run or reschedule a given task to be run at a different time
您可以使用Quartz JMX访问各种信息(如上一次和下次运行时)或直接查询Quartz数据库表.在上述输入中还有免费和商业管理工具.我相信你也可以在那里手动运行工作.
Spring Batch可以与Quartz集成,但不能替代它.