`

Quartz之一个任务绑定多个触发器

阅读更多
参见官方示例:
SchedulerFactory sf = new StdSchedulerFactory(
                "org/quartz/examples/example14/quartz_priority.properties");
        Scheduler sched = sf.getScheduler();   

 JobDetail job = newJob(TriggerEchoJob.class)
            .withIdentity("TriggerEchoJob")
            .build();            

        Date startTime = futureDate(5, IntervalUnit.SECOND);
        
        // First trigger has priority of 1, and will repeat after 5 seconds
        Trigger trigger1 = newTrigger()
            .withIdentity("PriorityNeg5Trigger5SecondRepeat")
            .startAt(startTime)
            .withSchedule(simpleSchedule().withRepeatCount(1).withIntervalInSeconds(5))
            .withPriority(1)
            .forJob(job)
            .build();

        // Second trigger has default priority of 5 (default), and will repeat after 10 seconds
        Trigger trigger2 = newTrigger()
            .withIdentity("Priority5Trigger10SecondRepeat")
            .startAt(startTime)
            .withSchedule(simpleSchedule().withRepeatCount(1).withIntervalInSeconds(10))
            .forJob(job)
            .build();
        
        // Third trigger has priority 10, and will repeat after 15 seconds
        Trigger trigger3 = newTrigger()
            .withIdentity("Priority10Trigger15SecondRepeat")
            .startAt(startTime)
            .withSchedule(simpleSchedule().withRepeatCount(1).withIntervalInSeconds(15))
            .withPriority(10)
            .forJob(job)
            .build();

        // Tell quartz to schedule the job using our trigger
        sched.scheduleJob(job, trigger1);
        sched.scheduleJob(trigger2);
        sched.scheduleJob(trigger3);

        // Start up the scheduler (nothing can actually run until the 
        // scheduler has been started)
        sched.start();

quartz_priority.properties
org.quartz.scheduler.instanceName: PriorityExampleScheduler
org.quartz.threadPool.threadCount: 1
org.quartz.threadPool.class: org.quartz.simpl.SimpleThreadPool
org.quartz.jobStore.class: org.quartz.simpl.RAMJobStore
分享到:
评论

相关推荐

    quartz一个定时触发实例

    7. **集群支持**:Quartz可以部署在集群环境中,多个调度器实例可以共享相同的作业和触发器,确保高可用性和负载均衡。 8. **API和配置**:Quartz提供丰富的API和XML配置文件,可以灵活地设置任务执行的细节,如...

    基于java和quartz的简单任务调度

    总结来说,本项目展示了如何利用Java和Quartz库搭建一个基础的任务调度系统,涵盖了任务定义、触发器设定、日志管理和数据库连接池等关键组件。这样的系统有助于提高工作效率,减少人工干预,确保任务按计划执行。

    任务调度系统基于Quartz.net

    Quartz.NET是一个开源的任务调度框架,它允许开发者在.NET环境中创建、安排和执行各种类型的任务。这个系统的主要目的是实现应用程序的后台任务自动化,比如定期数据备份、清理过期记录、发送邮件等。在"任务调度...

    quartz-1.6.0 jar&src

    Quartz 支持多个作业和触发器的组合,可以为一个作业设置多个触发器,也可以为一个触发器绑定多个作业。 在使用 quartz-1.6.0.jar 时,开发者通常需要: - 引入 quartz.jar 到项目类路径,以便使用 Quartz 提供的...

    Quartz执行定时任务

    总的来说,这篇博客会是学习和理解Quartz执行定时任务的好资源,涵盖了从基本概念到实践应用的多个层面。通过阅读和实践,开发者能够掌握如何利用Quartz提升应用程序的自动化程度,实现高效的任务调度。

    Quartz定时任务完全攻略

    2. 分布式调度:通过集群配置,多个Scheduler实例可以共享任务,提高系统扩展性。 3. 回调机制:Job可以监听自身的执行状态,如`@Override public void execute(JobExecutionContext context) throws ...

    Quartz 任务调度器

    5. **集群(Clustering)**:Quartz 还支持集群部署,多个调度器实例可以在分布式环境中协作工作,确保高可用性和负载均衡。 6. **API 与配置**:Quartz 提供了全面的 API 供开发者使用,同时也可以通过 XML 配置...

    数据库管理quartz定时任务

    - 在分布式环境中,多个Quartz Scheduler实例可以共享同一个数据库,实现任务的负载均衡和故障转移。 - 当某个节点失败时,其他节点可以从数据库中获取未执行的任务继续执行,确保任务的完整性。 6. **监控与管理...

    QuartzDemo.zip

    - 一个作业可以有多个触发器,意味着一个任务可以被安排在多个时间点或按照多种模式执行。 - 同样,一个触发器也可以关联到多个作业,使得触发事件时可以执行多个任务。 3. **作业存储与恢复**: - Quartz.NET...

    开发工具:基于Quartz的定时任务服务系统

    3. **集群支持**:在多服务器环境下,Quartz可以实现任务的负载均衡,确保任务仅被执行一次,防止重复。 4. **插件化**:Quartz提供了丰富的插件,如JobStore插件用于存储任务和触发器,TriggerListener和...

    定时任务quartz jar包

    5. **Quartz的工作原理**:Quartz内部有一个Scheduler,它负责管理所有的作业和触发器。当Scheduler启动后,会根据触发器的设定检查是否有需要执行的作业,并在合适的时间调用作业的execute方法。 6. **注意事项**...

    Quartz业务调度入门实例15个_注释带中文翻译

    3. 作业队列:处理多个并发执行的作业,例如邮件发送、数据同步等。 4. 作业状态管理:暂停、恢复、删除作业和触发器。 5. 作业依赖:一个作业依赖于另一个作业的完成,形成作业链。 五、Quartz的调度策略 1. 持续...

    quartz定时任务Demo,直接可运行

    这个"quartz定时任务Demo"是一个可以直接在Eclipse集成开发环境中运行的实例,它提供了清晰的注释,方便初学者理解和学习。 1. **Quartz基本概念** - **Job**:作业是实际执行的任务,是实现了`org.quartz.Job`...

    Spring的定时任务开发及对Quartz和Timer支持

    不过,由于Timer的线程模型存在一些限制,如所有定时任务都在同一个线程中运行,因此在多任务并发执行时可能会有性能问题。因此,对于复杂的定时任务需求,推荐使用Quartz这样的专业调度库。 Quartz与Spring的整合...

    Quartz定时任务框架学习总结

    Quartz还支持多节点集群,当在一个集群中的一个节点失败时,其他节点可以接管调度任务,确保高可用性。 7. **插件扩展**: Quartz提供了丰富的插件,如EmailSenderPlugin用于发送邮件通知,JobStore用于不同的...

    java quartz定时任务

    1. **java_quartz测试项目**:这个可能是包含Quartz集成的Java项目,可能包含了一个或多个Job类,以及对应的Trigger配置。这些Job类会实现具体的业务逻辑,而Trigger则定义了它们的执行时机。 2. **截图描述文档**...

    quartz任务调度

    3. 考虑到任务的并发性和资源管理,如果多个任务可能同时运行,需要考虑如何控制并发策略。 总的来说,Quartz为Java应用提供了一套强大且灵活的任务调度解决方案。通过结合Spring,我们可以更方便地管理和控制这些...

    Quartz任务调度快速入门

    一个 `Trigger` 可以与多个 `Calendar` 关联,以便排除或包含某些时间点。 - **示例**:例如,如果某个任务每周一执行,但遇到法定节假日时不执行,则可以使用 `Calendar` 来排除这些日期。 - **实现**:Quartz ...

    quartz定时任务

    - **多数据源配置**:在Spring中配置多个DataSource bean,每个对应不同的数据库连接。 - **Job执行时选择数据源**:在Job中,根据任务需求动态选择要使用的数据源。可以使用AOP或ThreadLocal来实现数据源切换。 ...

    quartz定时器不依赖任何框架

    一个Job可以被多个Trigger触发,一个Trigger也可以触发多个Job。 6. **插件支持**:Quartz允许扩展其功能,例如,通过插件实现邮件通知、日志记录等。 7. **易用性**:Quartz提供了一个直观的配置和API,使得...

Global site tag (gtag.js) - Google Analytics