JavaQuartz作业持久性

JavaQuartz作业持久性,java,struts2,quartz-scheduler,Java,Struts2,Quartz Scheduler,我对JavaQuartz不太熟悉,我们只是使用了一个每天安排的测试作业。对于我们的Struts2 Web应用程序,我们希望在一天中的不同时间运行一些日常作业。作业应该处于持久状态,这样即使作业由于服务器关闭/应用程序失败而失败,它们也应该在服务器启动后重新执行。我还可以将作业的状态/结果存储在数据库中,以便监视作业。任何建议都会有帮助 -- 谢谢我们有Java Quartz中的作业存储api。这将在数据库中保留有关作业信息的数据。所以我想这会对你有帮助。您可以通过检查了解代码和数据库结构。您可以

我对JavaQuartz不太熟悉,我们只是使用了一个每天安排的测试作业。对于我们的Struts2 Web应用程序,我们希望在一天中的不同时间运行一些日常作业。作业应该处于持久状态,这样即使作业由于服务器关闭/应用程序失败而失败,它们也应该在服务器启动后重新执行。我还可以将作业的状态/结果存储在数据库中,以便监视作业。任何建议都会有帮助

--
谢谢

我们有Java Quartz中的
作业存储
api。这将在数据库中保留有关作业信息的数据。所以我想这会对你有帮助。您可以通过检查了解代码和数据库结构。

您可以将Quartz与

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

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


祝你好运

您提到的任何东西都可以在Quartz scheduler中实现,并且已经有了一个触发器功能,我们通常称之为
失火指令
,这就是doc对它的看法

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

关于作业持久性,Quartz几乎没有内置机制,您只需将JobStore设置为
JDBCJobStore

我建议你去与它相当简单,有很多教程和例子开始


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

我相信Quartz具有所有这些特性。它当然可以使用持久的作业存储。要使用Spring Batch Admin,我是否需要在现有的Struts2 web Appa中使用Springs framework在查看文档后,我发现jobStore负责跟踪您提供给调度程序的所有“工作数据”:作业、触发器、日历、,等。是否也可以在jobStore中存储作业状态,即结果/执行状态。在文档中,我可以找到有关检索调度程序作业的作业状态的详细信息的任何特定课程号。为了在我们的Web应用程序中注册Quartz,我们必须添加Quartz-service.xml。但是在struts2项目中,在src内部或web-inf中,到底在哪个位置添加这个。您甚至可以使用属性文件并将名称传递给石英过滤器。这将让您知道该做什么以及如何做