普通
@Configuration
@EnableScheduling
public class ScheTask {
private Logger logger = LoggerFactory.getLogger(getClass());
@Scheduled(cron="0/10 * * * * *")
public void task(){
logger.info("cc"+new Date());
}
@Scheduled(cron="0/5 * * * * *")
public void task1() throws Exception{
Thread.sleep(10000);
logger.info("dd"+new Date());
}
}
动态设置时间
@RestController
@EnableScheduling
public class DyScheTask implements SchedulingConfigurer{
private String expression = "0/5 * * * * *";
@RequestMapping("/changesche.do")
public String change(){
this.expression = "0/10 * * * * *";
return "change sche ok";
}
@Override
public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
Runnable task = new Runnable() {
@Override
public void run() {
System.out.println("this is a dy task "+new Date());
}
};
//taskRegistrar.addTriggerTask(task,new CronTrigger(expression));
}
}
动态设置时间,且可关闭
@RestController
@EnableScheduling
public class DynamicTask {
private static ThreadPoolTaskScheduler taskScheduler;
private String expression = "0/5 * * * * *";
private ScheduledFuture<?> scheduledFuture;
static{
taskScheduler = new ThreadPoolTaskScheduler();
taskScheduler.initialize();
}
@RequestMapping("/starttask.do")
public String startTask(){
Runnable task = new Runnable() {
@Override
public void run() {
System.out.println("this is a dy task "+new Date());
}
};
scheduledFuture = taskScheduler.schedule(task,new CronTrigger(expression));
return "start task ok";
}
@RequestMapping("/stoptask.do")
public String stopTask(){
if(scheduledFuture!=null){
scheduledFuture.cancel(true);
}
return "start stop ok";
}
@RequestMapping("/change.do")
public String change(){
stopTask();
this.expression = "0/10 * * * * *";
startTask();
return "change sche ok";
}
}