JavaQuartz作业持久性

我对Java Quartz不熟悉,我们只是使用了每天安排的测试工作。 对于我们的Struts2 web应用程序,我们希望运行一些在一天中不同时间安排的日常工作。 作业应处于持久性状态,这样即使由于服务器关闭/应用程序失败而导致作业失败,它们也应在服务器启动后重新执行。 我也可以将作业的状态/结果存储在DB中,以便监视作业。 任何的意见都将会有帮助。

– 谢谢

无论你提到的是什么都可以在Quartz调度器中使用,并且已经有一个触发器的function,我们通常称之为Misfire Instructions这就是doc对它的说法

触发器的另一个重要特性是它的“失火指令”。 如果持久性触发器由于调度程序被关闭而“错过”其触发时间,或者因为Quartz的线程池中没有可用于执行作业的线程,则会发生失败。 不同的触发类型可以使用不同的失火指令。 默认情况下,它们使用“智能策略”指令 – 该指令具有基于触发类型和配置的动态行为。 当调度程序启动时,它会搜索任何已失效的持久触发器,然后根据各自配置的失火指令更新每个触发器。 当您在自己的项目中开始使用Quartz时,您应该熟悉在给定触发器类型上定义的失火指令,并在他们的JavaDoc中进行了解释。 有关失火指令的更多具体信息将在特定于每种触发类型的教程课程中给出。

关于作业持久性Quartz提供了很少的内置机制,您需要将JobStore设置为JDBCJobStore

我建议你使用Quartz调度程序文档非常简单,并有很多教程和示例。

如果您没有在应用程序中使用Spring,则无需添加额外级别的抽象和依赖项。

您可以将石英与Sprig批次结合使用。

前者提供用于管理各种流的API(根据需要复杂),作业状态的持久存储以及用于根据执行状态监视和重新运行作业的api。 另一个方便的库是Spring Batch管理员 。 它有Web控制台和5分钟指南。

Quartz用作调度程序作业状态持久性由Spring批处理。它可以作为独立的Java应用程序运行,也可以在web /应用程序容器中运行(对我来说Tomcat就足够了)。

祝你好运!

我们在Java Quartz中有Job stores api。 这将在数​​据库中保留有关作业信息的数据。 所以我想这会对你有所帮助。 您可以查看此链接以了解代码和数据库结构。