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); 
 | 
    } 
 | 
  
 | 
} 
 |