| | |
| | | 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线程无故丢失的问题 |
| | |
| | | @AllArgsConstructor |
| | | @EnableAsync |
| | | public class SchedulerListener { |
| | | private final ScheduledJobService scheduledJobService; |
| | | |
| | | |
| | | |
| | | @Async |
| | | @EventListener(ScheduleEvent.class) |
| | |
| | | //获取事件对象 |
| | | ScheduledJob scheduledJob = event.getScheduledJob(); |
| | | System.out.println("开始执行任务......"); |
| | | scheduledJob.setActiveTime(new Date()); |
| | | scheduledJobService.updateById(scheduledJob); |
| | | //开始执行任务 |
| | | SpringBeanTaskUtil.invokeMethod(scheduledJob); |
| | | System.out.println("任务执行结束......"); |
| | | |
| | | |
| | | } |
| | | } |