• 大小: 17KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-01
  • 语言: 其他
  • 标签: Spring任务  

资源简介

在不停服务的情况下,动态修改Spring定时任务的执行周期,即动态修改定时任务的cron参数。

资源截图

代码片段和文件信息

package com.pes_soft.task.demo;

import java.util.Date;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.context.annotation.Lazy;
import org.springframework.scheduling.Trigger;
import org.springframework.scheduling.TriggerContext;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.SchedulingConfigurer;
import org.springframework.scheduling.config.ScheduledTaskRegistrar;
import org.springframework.scheduling.support.CronTrigger;
import org.springframework.stereotype.Component;

/**
 * Spring动态周期定时任务

 * 在不停应用的情况下更改任务执行周期
 * @Author 许亮
 * @Create 2016-11-10 16:31:29
 */
@Lazy(false)
@Component
@EnableScheduling
public class SpringDynamicCronTask implements SchedulingConfigurer {
private static final Logger logger = LoggerFactory.getLogger(SpringDynamicCronTask.class);

private static String cron;

public SpringDynamicCronTask() {
cron = “0/5 * * * * ?“;

// 开启新线程模拟外部更改了任务执行周期
new Thread(new Runnable() {
@Override
public void run() {
try {
Thread.sleep(15 * 1000);
} catch (InterruptedException e) {
e.printStackTrace();
}

cron = “0/10 * * * * ?“;
System.err.println(“cron change to: “ + cron);
}
}).start();
}

@Override
public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
taskRegistrar.addTriggerTask(new Runnable() {
@Override
public void run() {
// 任务逻辑
logger.debug(“dynamicCronTask is running...“);
}
} new Trigger() {
@Override
public Date nextExecutionTime(TriggerContext triggerContext) {
// 任务触发,可修改任务的执行周期
CronTrigger trigger = new CronTrigger(cron);
                Date nextExec = trigger.nextExecutionTime(triggerContext);
                return nextExec;
}
});
}
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       1438  2016-11-10 21:40  .project

     文件       5192  2016-11-10 21:37  pom.xml

     文件        575  2016-11-10 21:40  .settings\.jsdtscope

     文件        430  2016-11-10 21:40  .settings\org.eclipse.jdt.core.prefs

     文件         90  2016-11-10 21:40  .settings\org.eclipse.m2e.core.prefs

     文件        704  2016-11-10 21:40  .settings\org.eclipse.wst.common.component

     文件        252  2016-11-10 21:40  .settings\org.eclipse.wst.common.project.facet.core.xml

     文件         49  2016-11-10 21:40  .settings\org.eclipse.wst.jsdt.ui.superType.container

     文件          6  2016-11-10 21:40  .settings\org.eclipse.wst.jsdt.ui.superType.name

     文件         50  2016-11-10 21:40  .settings\org.eclipse.wst.validation.prefs

     文件       2009  2016-11-10 21:37  src\main\java\com\pes_soft\task\demo\SpringDynamicCronTask.java

     文件        641  2016-11-10 21:37  src\main\java\com\pes_soft\task\demo\SpringStaticCronTask.java

     文件       1112  2016-11-10 21:37  src\main\resources\log4j.xml

     文件       1447  2016-11-10 21:37  src\main\webapp\WEB-INF\spring\appServlet\servlet-context.xml

     文件        930  2016-11-10 21:37  src\main\webapp\WEB-INF\spring\root-context.xml

     文件        252  2016-11-10 21:37  src\main\webapp\WEB-INF\views\home.jsp

     文件       1239  2016-11-10 21:37  src\main\webapp\WEB-INF\web.xml

     文件       1080  2016-11-10 21:37  src\test\resources\log4j.xml

     文件       1307  2016-11-10 21:40  target\classes\com\pes_soft\task\demo\SpringDynamicCronTask$1.class

     文件        920  2016-11-10 21:40  target\classes\com\pes_soft\task\demo\SpringDynamicCronTask$2.class

     文件       1227  2016-11-10 21:40  target\classes\com\pes_soft\task\demo\SpringDynamicCronTask$3.class

     文件       1968  2016-11-10 21:40  target\classes\com\pes_soft\task\demo\SpringDynamicCronTask.class

     文件        973  2016-11-10 21:40  target\classes\com\pes_soft\task\demo\SpringStaticCronTask.class

     文件       1112  2016-11-10 21:40  target\classes\log4j.xml

     文件        108  2016-11-10 21:40  target\m2e-wtp\web-resources\meta-INF\MANIFEST.MF

     文件        289  2016-11-10 21:40  target\m2e-wtp\web-resources\meta-INF\maven\com.pes_soft\mvc-task-dynamic-cron\pom.properties

     文件       5192  2016-11-10 21:40  target\m2e-wtp\web-resources\meta-INF\maven\com.pes_soft\mvc-task-dynamic-cron\pom.xml

     文件       1080  2016-11-10 21:40  target\test-classes\log4j.xml

     文件       1515  2016-11-10 21:40  .classpath

     目录          0  2016-11-10 21:37  src\main\java\com\pes_soft\task\demo

............此处省略31个文件信息

评论

共有 条评论

相关资源