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 Eva.Caesar Liu * @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); } }