From 12951773930bff4df733d43a9c6b6aabb57bb5a0 Mon Sep 17 00:00:00 2001
From: RuoYi <yzz_ivy@163.com>
Date: Sat, 30 Jul 2022 13:49:36 +0800
Subject: [PATCH] 优化任务过期不执行调度
---
ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/service/SysJobServiceImpl.java | 27 +++++++++++++++++----------
1 files changed, 17 insertions(+), 10 deletions(-)
diff --git a/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/service/SysJobServiceImpl.java b/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/service/SysJobServiceImpl.java
index 4699b3d..61bb2b2 100644
--- a/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/service/SysJobServiceImpl.java
+++ b/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/service/SysJobServiceImpl.java
@@ -74,7 +74,7 @@
* @param job 调度信息
*/
@Override
- @Transactional
+ @Transactional(rollbackFor = Exception.class)
public int pauseJob(SysJob job) throws SchedulerException
{
Long jobId = job.getJobId();
@@ -94,7 +94,7 @@
* @param job 调度信息
*/
@Override
- @Transactional
+ @Transactional(rollbackFor = Exception.class)
public int resumeJob(SysJob job) throws SchedulerException
{
Long jobId = job.getJobId();
@@ -114,7 +114,7 @@
* @param job 调度信息
*/
@Override
- @Transactional
+ @Transactional(rollbackFor = Exception.class)
public int deleteJob(SysJob job) throws SchedulerException
{
Long jobId = job.getJobId();
@@ -134,7 +134,7 @@
* @return 结果
*/
@Override
- @Transactional
+ @Transactional(rollbackFor = Exception.class)
public void deleteJobByIds(Long[] jobIds) throws SchedulerException
{
for (Long jobId : jobIds)
@@ -150,7 +150,7 @@
* @param job 调度信息
*/
@Override
- @Transactional
+ @Transactional(rollbackFor = Exception.class)
public int changeStatus(SysJob job) throws SchedulerException
{
int rows = 0;
@@ -172,16 +172,23 @@
* @param job 调度信息
*/
@Override
- @Transactional
- public void run(SysJob job) throws SchedulerException
+ @Transactional(rollbackFor = Exception.class)
+ 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;
}
/**
@@ -190,7 +197,7 @@
* @param job 调度信息 调度信息
*/
@Override
- @Transactional
+ @Transactional(rollbackFor = Exception.class)
public int insertJob(SysJob job) throws SchedulerException, TaskException
{
job.setStatus(ScheduleConstants.Status.PAUSE.getValue());
@@ -208,7 +215,7 @@
* @param job 调度信息
*/
@Override
- @Transactional
+ @Transactional(rollbackFor = Exception.class)
public int updateJob(SysJob job) throws SchedulerException, TaskException
{
SysJob properties = selectJobById(job.getJobId());
--
Gitblit v1.9.3