5

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

但我希望有更多的控制权。特别是我需要:

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

在我看来,上述几点可以通过 Spring Batch Admin 实现,但我在这方面还没有太多经验。此外,我已经看到很多关于 Spring Batch 不是调度工具的帖子,所以我开始怀疑这里的工作是什么正确的工具。

所以我的问题是:以上可以用 Spring Batch Admin 实现吗?或者也许 Quartz 就足够了,但需要配置来执行上述操作?或者也许我两者都需要?或者是其他东西?

非常感谢 :) 彼得

4

1 回答 1

5

让系统重新运行未在预定时间运行的任务

Quartz中的这个功能称为Misfire Instructions,它完全符合您的需求 - 但更加灵活。您只需要定义JDBCJobStore.

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

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

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

于 2011-12-08T17:12:54.797 回答