Quartz是一个开源的作业调度框架,它完全由Java写成,并设计用于J2SE和J2EE应用中。它提供了巨大的灵 活性而不牺牲简单性。你能够用它来为执行一个作业而创建简单的或复杂的调度。它有很多特征,如:数据库支持,集群,插件,EJB作业预构 建,JavaMail及其它,支持cron-like表达式等等。
该项目已经被 Terracotta收购。
示例代码:
import org.quartz.Scheduler; import org.quartz.SchedulerException; import org.quartz.impl.StdSchedulerFactory; public class QuartzTest { public static void main(String[] args) { try { // Grab the Scheduler instance from the Factory Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler(); // and start it off scheduler.start(); scheduler.shutdown(); } catch (SchedulerException se) { se.printStackTrace(); } } }
Quartz表结构说明 一、表信息解析: 1.1. qrtz_blob_triggers : 以Blob 类型存储的触发器。 1.2. qrtz_calendars:存放日历信息, quartz可配置一个日历来指定一个时间范围。 1.3. qrtz_cron_triggers:存放cron类型的触发器。 1.4. qrtz_fired_triggers:存放已触发的触发器。 1.5. qrtz_j
我想使用Quartz和Oracle作为JobStore来安排作业。我看到了大多数使用RAMjobstore的示例(当然它不是持久的),但几乎没有任何一个可以帮助我满足Spring boot Quartz Oracle开发的需求。 如有任何指向代码示例或github项目的链接或帮助,将不胜感激。
我使用Quartz调度器执行10个作业。所有这些工作都有自己的导火索。因此它们是异步执行的。 然而,现在我需要这些工作中的2个,以更具体的方式执行。假设Job1每偶数分钟执行一次,Job2每奇数分钟执行一次。现在我想让Job2等待Job1完成。示例:Job1在10:02开始执行。10点03分,Job2的触发器被触发。但是在Job2开始执行之前,如果Job1已经完成,它将查看它。 你知道我怎么解决问
我只是设置QUARTZ用于我们的企业应用程序。下面的代码片段只是示例,并不是从实际的web应用程序中摘取的。 Quartz.Properties配置如下: 最后,我的quartz-config.xml:
我正在使用一个石英工作执行特定的任务。 如果另一个Main Job实例仍在运行,我想阻止调度器启动第二个Main Job实例...
我正在利用石英调度,有2个工作。第一个工作是执行大约2分钟的任务,第二个是设置为临时文件的清理操作。因此,我需要设置时间表,以一种方式工作,即在第一个作业被执行/完成执行任务后,我需要在第二个作业的帮助下进行清洁操作。 考虑到Quartz 2.1.x下的示例9-Job Listeners,该示例说明我们可以定义一个名为jobWasExecuted(_,_)的方法;并在第一个作业被执行/或处于运行状
我的we应用程序A将扫描业务相关的数据库表,并在启动期间和之后每10分钟安排石英作业。如果我在两个不同的tomcat实例上部署两个A应用程序,那么将有两组通过Quartz调度的重复作业。 我该如何解决这个问题?我是否需要将调度作业的部分代码提取到单独的应用程序中,并确保只部署了1个实例,从而只调度了1组作业?但是问题变成了--如果这个实例失败了怎么办?在这种情况下,如何实现故障转移?
我是否需要? 我需要吗?我不能使用类/servlet做同样的事情吗? 如何初始化计划程序以及谁将触发作业? 我有一个执行作业独立程序,我可以在任何servlet的init中编写,并在容器启动时启动servlet。这样做对吗?