@Component
public class Scheduling implements SchedulingConfigurer {
protected final static Logger logger = LoggerFactory.getLogger(Scheduling.class);
@Autowired
HealthCheck healthCheck;
public static String cron;
public Scheduling() {
cron = "0/30 * * * * *";
}
public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
Runnable task = new Runnable() {
public void run() {
//这里面写逻辑
healthCheck.check();
logger.debug("healthCheck is running ..."+ cron );
}
};
Trigger trigger = new Trigger() {
public Date nextExecutionTime(TriggerContext triggerContext) {
Integer i = (Integer) healthCheck.cacheMap.get("count");
if (i == 0) {
cron = "0/90 * * * * ? ";
}
if (i == 1) {
cron = "0/240 * * * * ? ";
}
if (i == 2) {
cron = "0/30 * * * * ? ";
}
// 任务触发,可修改任务的执行周期.
CronTrigger trigger = new CronTrigger(cron);
Date nextExec = trigger.nextExecutionTime(triggerContext);
return nextExec;
}
};
taskRegistrar.addTriggerTask(task, trigger);
}
}
动态修改定时任务时间
猜你喜欢
转载自blog.csdn.net/u012040869/article/details/79878053
今日推荐
周排行