資源簡介
在不停服務的情況下,動態修改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.xm
?????文件????????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.xm
?????文件?????????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.xm
?????文件???????1447??2016-11-10?21:37??src\main\webapp\WEB-INF\spring\appServlet\servlet-context.xm
?????文件????????930??2016-11-10?21:37??src\main\webapp\WEB-INF\spring\root-context.xm
?????文件????????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.xm
?????文件???????1080??2016-11-10?21:37??src\test\resources\log4j.xm
?????文件???????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.xm
?????文件????????108??2016-11-10?21:40??target\m2e-wtp\web-resources\me
?????文件????????289??2016-11-10?21:40??target\m2e-wtp\web-resources\me
?????文件???????5192??2016-11-10?21:40??target\m2e-wtp\web-resources\me
?????文件???????1080??2016-11-10?21:40??target\test-classes\log4j.xm
?????文件???????1515??2016-11-10?21:40??.classpath
?????目錄??????????0??2016-11-10?21:37??src\main\java\com\pes_soft\task\demo
............此處省略31個文件信息
- 上一篇:道客巴巴器.exe
- 下一篇:宏晶STC單片機常見封裝及PCB庫
評論
共有 條評論