spring定时执行频率动态改变(个人备份)

来源:互联网 发布:q动态头像软件 编辑:程序博客网 时间:2024/05/19 14:35
  1. 配置文件头部加入

    <beans xmlns="http://www.springframework.org/schema/beans"  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xmlns:task="http://www.springframework.org/schema/task"  xmlns:context="http://www.springframework.org/schema/context"  xsi:schemaLocation="      http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd      http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task.xsd       http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd ">
  2. 配置文件内加入
<task:annotation-driven executor="myExecutor" scheduler="myScheduler"/><task:executor id="myExecutor" pool-size="5"/><task:scheduler id="myScheduler" pool-size="10"/>
  1. 动态修改调度频率
//在4.3的版本里面@EnableScheduling,容器如果重复扫描的话会执行俩次,用@Scheduling则不会@Component  @EnableScheduling  public class updateCronTask implements SchedulingConfigurer {        public static String cron = "0/2 * * * * ?";        int i=0;      @Override        public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {          taskRegistrar.addTriggerTask(new Runnable() {            @Override            public void run(){          i++;              // 任务逻辑            System.out.println("第"+(i)+"次开始执行操作... " +"时间:【" + new SimpleDateFormat("yyyy-MM-dd hh:mm:ss.SSS").format(new Date()) + "】");          }      }, new Trigger(){          @Override          public Date nextExecutionTime(TriggerContext triggerContext) {              //任务触发,可修改任务的执行周期               CronTrigger trigger = new CronTrigger(cron);              Date nextExec = trigger.nextExecutionTime(triggerContext);              return nextExec;            }      });  }  }  

spring官方文档

原创粉丝点击