钟日健
2022-05-18 ed41701a2954172d20b85da0ae01436375210840
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
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("任务执行结束......");
 
    }
}