RuoYi
2022-07-30 12951773930bff4df733d43a9c6b6aabb57bb5a0
优化任务过期不执行调度
4 files modified
22 ■■■■ changed files
ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/controller/SysJobController.java 4 ●●●● patch | view | raw | blame | history
ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/service/ISysJobService.java 2 ●●● patch | view | raw | blame | history
ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/service/SysJobServiceImpl.java 11 ●●●● patch | view | raw | blame | history
ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/util/ScheduleUtils.java 5 ●●●●● patch | view | raw | blame | history
ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/controller/SysJobController.java
@@ -168,8 +168,8 @@
    @PutMapping("/run")
    public AjaxResult run(@RequestBody SysJob job) throws SchedulerException
    {
        jobService.run(job);
        return AjaxResult.success();
        boolean result = jobService.run(job);
        return result ? success() : error("任务不存在或已过期!");
    }
    /**
ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/service/ISysJobService.java
@@ -74,7 +74,7 @@
     * @param job 调度信息
     * @return 结果
     */
    public void run(SysJob job) throws SchedulerException;
    public boolean run(SysJob job) throws SchedulerException;
    /**
     * 新增任务
ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/service/SysJobServiceImpl.java
@@ -173,15 +173,22 @@
     */
    @Override
    @Transactional(rollbackFor = Exception.class)
    public void run(SysJob job) throws SchedulerException
    public boolean run(SysJob job) throws SchedulerException
    {
        boolean result = false;
        Long jobId = job.getJobId();
        String jobGroup = job.getJobGroup();
        SysJob properties = selectJobById(job.getJobId());
        // 参数
        JobDataMap dataMap = new JobDataMap();
        dataMap.put(ScheduleConstants.TASK_PROPERTIES, properties);
        scheduler.triggerJob(ScheduleUtils.getJobKey(jobId, jobGroup), dataMap);
        JobKey jobKey = ScheduleUtils.getJobKey(jobId, jobGroup);
        if (scheduler.checkExists(jobKey))
        {
            result = true;
            scheduler.triggerJob(jobKey, dataMap);
        }
        return result;
    }
    /**
ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/util/ScheduleUtils.java
@@ -83,7 +83,12 @@
            scheduler.deleteJob(getJobKey(jobId, jobGroup));
        }
        // 判断任务是否过期
        if (StringUtils.isNotNull(CronUtils.getNextExecution(job.getCronExpression())))
        {
            // 执行调度任务
        scheduler.scheduleJob(jobDetail, trigger);
        }
        // 暂停任务
        if (job.getStatus().equals(ScheduleConstants.Status.PAUSE.getValue()))