spring quartz动态修改执行时间

1.获取schedule

 <bean name="startQuartz" lazy-init="false" autowire="no"
        class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
        <property name="triggers">
            <list>
                <ref bean="runJobTrigger" />
            </list>
        </property>
    </bean> 
@Resource(name="startQuartz")
private StdScheduler scheduler;

2.修改trigger

    <!--es数据备份定时任务-->
    <bean id="runJobTrigger11"
          class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
        <property name="name">
            <value>name</value>
        </property>
        <property name="group">
            <value>group</value>
        </property>
        <property name="jobDetail">
            <ref bean="runJobDetail11" />
        </property>
        <property name="cronExpression">
            <value>0/2 * * ? * * *</value><!-- 每2秒一次 -->
        </property>
    </bean>
    <bean id="runJobDetail11"
          class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">        <!--这边自己设置>
    </bean>
        TriggerKey triggerKey = TriggerKey.triggerKey("name", "group");
        TriggerBuilder<Trigger> triggerBuilder = TriggerBuilder.newTrigger();
        triggerBuilder.withIdentity("esBackupTrigger", "es");
        triggerBuilder.startNow();
        triggerBuilder.withSchedule(CronScheduleBuilder.cronSchedule("0/"+day+" * * ? * * *"));
        System.out.println("0/"+5+" * * ? * * *");
        CronTrigger trigger = (CronTrigger) triggerBuilder.build();
        scheduler.rescheduleJob(triggerKey, trigger);

然后就修改了执行的时间,改成了5秒一次。

原文地址:https://www.cnblogs.com/chenmz1995/p/10465908.html

时间: 2025-01-07 12:55:34

spring quartz动态修改执行时间的相关文章

Spring+quartz 动态任务调度

需求是这样的:系统中会有很多的执行时间,三个或者四个这样,不确定,以后可能是五个!当用户在页面添加执行时间时,我们后台也要对应执行用户添加的时间. 数据库设计: DROP TABLE IF EXISTS `test_time_task`; CREATE TABLE `test_time_task` ( `status` int(11) DEFAULT NULL COMMENT '状态:0为正常,1为禁用', `job` varchar(255) CHARACTER SET utf8 DEFAUL

spring+quartz,动态注册job

Spring+Quartz的整合有很多例子,此处不提整合; 若配置固定的job,常常使用MethodInvokingJobDetailFactoryBean,也不错, 可问题的根源在于 这个类没实现 Serializable接口, 导致了将job信息存入数据库中时,它不工作了, 这是诱因之一. 以下是文章的主要内容. 前提及目标 1.job信息存入数据库 2.可给项目添加固定的job(写在配置文件里的),也可以添加动态的job(如定时发送邮件,由JAVA代码添加job) 3.要能在实际项目中有使

quartz动态修改时间

//调度工具类public   class  QuartzManage {       private   static  SchedulerFactory sf =  new  StdSchedulerFactory();       private   static  String JOB_GROUP_NAME =  "e100egroup" ;       private   static  String TRIGGER_GROUP_NAME =  "e100etrig

spring quartz 分布式任务计划

通过maven管理的spring mvc工程,且已经成功连接数据库. 数据库表结构 /*Table structure for table `qrtz_calendars` */ DROP TABLE IF EXISTS `qrtz_calendars`; CREATE TABLE `qrtz_calendars` ( `SCHED_NAME` varchar(120) NOT NULL, `CALENDAR_NAME` varchar(200) NOT NULL, `CALENDAR` blo

动态修改Spring定时器

spring 的Quartz定时器的功能非常强大,可以在特定的年月日小时分秒的时间点触发时间,完成事件的调度,就像windows中得计划任务一样.下面看一个典型的Quartz定时器的实现: 1.首先实现一个用于被执行的类,这个类用于被定时器调度,这个类不需要继承任何类或者接口,代码如下: public TestQuartz { public void doSomething(){ //TODO } } 2.spring配置文件,具体配置 <!-- 被执行类 --> <bean id=&q

Quartz动态添加、修改和删除定时任务

任务调度开源框架Quartz动态添加.修改和删除定时任务 Quartz 是个开源的作业调度框架,为在 Java 应用程序中进行作业调度提供了简单却强大的机制.Quartz框架包含了调度器监听.作业和触发器监听.你可以配置作业和触发器监听为全局监听或者是特定于作业和触发器的监听.Quartz 允许开发人员根据时间间隔(或天)来调度作业.它实现了作业和触发器的多对多关系,还能把多个作业与不同的触发器关联.整合了 Quartz 的应用程序可以重用来自不同事件的作业,还可以为一个事件组合多个作业.并且还

Quartz总结(四):动态修改定时器二

前文:http://www.cnblogs.com/LiuChunfu/p/5598806.html 提到了一种动态修改定时器的方法, 其本质就是在job方法中注入Schedular的对象,从Schedular中获取Trigger(触发器),然后修改触发器的条件,重新启动. 前文中的方法,其实已经涉及到了循环调用. Job类 => Job => Trigger => Schedular =>Job类. 这样是很容易发生问题的,也确实在实际项目中发生了问题,特别是当Schedular

Spring quartz Job不能依赖注入,Spring整合quartz Job任务不能注入

Spring quartz Job不能依赖注入,Spring整合quartz Job任务不能注入 Spring4整合quartz2.2.3中Job任务使用@Autowired不能注入 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ©Copyright 蕃薯耀 2017年9月6日 http://ww

任务调度(二)——jdk自带的Timer 动态修改任务执行计划

上一篇博文<任务调度(一)--jdk自带的Timer>中,简单介绍了一下Timer,本文将分享一下如何动态修改Timer制定的计划. 先上代码: package com.tgb.ccl.schema.dynamic; import java.util.Date; /** * 可动态修改的任务 * * @author arron * @date 2015年5月9日 下午1:52:15 * @version 1.0 */ public class DynamicTimerTask extends