package org.springblade.modules.quartz.listener;
|
|
import lombok.AllArgsConstructor;
|
import org.springblade.modules.quartz.entity.ScheduledJob;
|
import org.springblade.modules.quartz.event.ScheduleEvent;
|
import org.springblade.modules.quartz.service.ScheduledJobService;
|
import org.springblade.modules.quartz.util.SpringBeanTaskUtil;
|
import org.springframework.context.event.EventListener;
|
import org.springframework.scheduling.annotation.Async;
|
import org.springframework.scheduling.annotation.EnableAsync;
|
import org.springframework.stereotype.Component;
|
|
import java.util.Date;
|
|
/**
|
* 异步监听定时任务事件,解决job线程无故丢失的问题
|
* @author zhongrj
|
* @since 2022-03-10
|
*/
|
@Component
|
@AllArgsConstructor
|
@EnableAsync
|
public class SchedulerListener {
|
private final ScheduledJobService scheduledJobService;
|
|
|
|
@Async
|
@EventListener(ScheduleEvent.class)
|
public void scheduledJobListener(ScheduleEvent event){
|
//获取事件对象
|
ScheduledJob scheduledJob = event.getScheduledJob();
|
// System.out.println("开始执行任务......");
|
// scheduledJob.setActiveTime(new Date());
|
// scheduledJobService.updateById(scheduledJob);
|
//开始执行任务
|
SpringBeanTaskUtil.invokeMethod(scheduledJob);
|
// System.out.println("任务执行结束......");
|
|
}
|
}
|