原因 本地和服务器同时启动的话,就会导致同一个定时任务执行两次,需要使用配置项不同环境初步初始化定时任务 定时任务实现类 程序启动的时候,自动创建所有的定时任务这里设置,根据配置项,确定创不创建定时任务 /** * 定时任务调度信息 服务层 * * @author ruoyi */ @Slf4j @Service public class SysJobServiceImpl implements ISysJobService { // 此处代码省略一万行 // 读取配置文件 @Value("${schedule.enabled}") private Boolean scheduleEnableFlag; /** * 项目启动时,初始化定时器 主要是防止手动修改数据库导致未同步到定时任务处理(注:不能手动修改数据库ID和任务组名,否则会导致脏数据) */ @PostConstruct public void init() throws SchedulerException, TaskException { scheduler.clear(); if (scheduleEnableFlag) { List<SysJob> jobList = jobMapper.selectJobAll(); for (SysJob job : jobList) { ScheduleUtils.createScheduleJob(scheduler, job); } log.info("【定时任务已启动】"); } else { log.info("【定时任务未启动】"); } } } application-dev.yml ## 定时任务全局开关(开发环境) schedule: enabled: false application-prod.yml ## 定时任务全局开关(正式环境) schedule: enabled: true