| package com.doumee.config.quartz; | 
|   | 
| import com.doumee.biz.system.SystemJobTriggerBiz; | 
| import com.doumee.biz.system.dto.TriggerJobDTO; | 
| import com.doumee.core.constants.Constants; | 
| import lombok.extern.slf4j.Slf4j; | 
| import org.quartz.DisallowConcurrentExecution; | 
| import org.quartz.JobExecutionContext; | 
| import org.springframework.beans.factory.annotation.Autowired; | 
| import org.springframework.scheduling.quartz.QuartzJobBean; | 
| import org.springframework.stereotype.Component; | 
|   | 
| /** | 
|  * JOB处理器 | 
|  * @author  dm | 
|  * @since 2025/03/31 16:44 | 
|  */ | 
| @Slf4j | 
| @Component | 
| @DisallowConcurrentExecution | 
| public class JobHandlerWithDisallowConcurrent extends QuartzJobBean { | 
|   | 
|     @Autowired | 
|     private SystemJobTriggerBiz systemJobTriggerBiz; | 
|   | 
|     @Override | 
|     protected void executeInternal(JobExecutionContext jobExecutionContext) { | 
|         Integer jobId = jobExecutionContext.getMergedJobDataMap().getInt(Constants.Job.JOB_DATA_MAP_JOB_ID); | 
|         TriggerJobDTO dto = new TriggerJobDTO(); | 
|         dto.setId(jobId); | 
|         dto.setTriggerType(Constants.Job.TriggerType.SYSTEM.getCode()); | 
|         dto.setScheduledFireTime(jobExecutionContext.getScheduledFireTime()); | 
|         dto.setBusinessTime(jobExecutionContext.getScheduledFireTime()); | 
|         dto.setFireTime(jobExecutionContext.getFireTime()); | 
|         dto.setNextFireTime(jobExecutionContext.getTrigger().getNextFireTime()); | 
|         systemJobTriggerBiz.trigger(dto); | 
|     } | 
|   | 
| } |