我遇到了不得不使用持久性调度程序的情况,因为我有一个Web应用程序,由于某些问题该应用程序可能会崩溃或关闭,并且如果发生这种情况,可能会丢失其作业详细信息。我尝试了以下方法:

  • 使用Quartz调度程序:

  • 我首先使用了RAMJobStore,但是由于它不是持久性的,因此没有太大帮助。无法设置JDBCJobStore,因为这将需要对现有代码库进行大量代码更改。
    鉴于这种情况,
    我有以下查询:
  • 如果我使用内置于@Schedule批注中的Spring的,我的工作将是持久性 ..?我不在乎应用程序启动后是否安排了工作。我只希望工作不丢失其细节和触发器。
  • 如果不是,那么是否还有可以跟随其他替代方案,请记住我需要使用调度程序来调度多个作业。
  • 如果我如何实现这个?每个工作的触发因素都不同。例如,我可能有一份计划在上午9点完成的工作,另外一份计划在8.30 AM进行,依此类推。
  • 如果不是调度程序,那么我可以有一种机制来处理此问题。

  • 我发现一件事是Quartz的文档描述性不强。我的意思是顶级配置很好,但是在您的应用程序上配置它很痛苦。这只是一个旁注。与这个问题无关。

    感谢帮助。 :)

    最佳答案

    @Schedule与实际的执行程序无关。默认的Java执行器不是持久性的(也许有一些特定于应用程序服务器的执行器),如果要持久性,则必须使用Quartz来执行作业。

    09-11 17:56
    查看更多