@Autowired
private ThreadPoolTaskScheduler threadPoolTaskScheduler;
@Bean
public ThreadPoolTaskScheduler threadPoolTaskScheduler() {
return new ThreadPoolTaskScheduler();
}
Map map =new HashMap();
@SuppressWarnings({ "rawtypes", "unchecked" })
@ApiOperation(value = "开启监控任务", notes = "开启监控任务")
@ApiResponses({
@ApiResponse(code = 500, response = RestError.class, message = "错误")
})
@PostMapping(value = "startFocusTask/{id}")
public void startFocusTask(@ApiParam(value = "任务编号") @PathVariable Integer id) {
ScheduledFuture<?> future1 = threadPoolTaskScheduler.schedule(new Foucestask(){
@Override
public void run() {
//在这里写代码逻辑
System.out.println("Task," + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())+"--"+id);
}
},new Trigger(){
@Override
public Date nextExecutionTime(TriggerContext triggerContext){
return new CronTrigger(" 0/5 * * * * ?").nextExecutionTime(triggerContext);
}
});
map.put(id, future1);
}
@SuppressWarnings({ "rawtypes", "unchecked" })
@ApiOperation(value = "关闭定时任务", notes = "关闭定时任务")
@ApiResponses({
@ApiResponse(code = 500, response = RestError.class, message = "错误")
})
@PostMapping(value = "stopFocusTask/{id}")
public void stopFocusTask(@ApiParam(value = "任务编号") @PathVariable Integer id) {
if (map.get(id) != null) {
ScheduledFuture<?> future1 = (ScheduledFuture<?>) map.get(id);
future1.cancel(true);
}
}
springboot实现schedule监听(多任务)
最新推荐文章于 2024-06-28 06:44:11 发布