Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
熊鹏飞
/
xxljob220
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Settings
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
25cf93fd
authored
May 24, 2017
by
xueli.xue
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
任务Cron更新逻辑优化,改为rescheduleJob,同时防止cron重复设置;
parent
54d92de7
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
21 additions
and
3 deletions
README.md
xxl-job-admin/src/main/java/com/xxl/job/admin/core/schedule/XxlJobDynamicScheduler.java
README.md
View file @
25cf93fd
...
...
@@ -847,6 +847,9 @@ Tips: 历史版本(V1.3.x)目前已经Release至稳定版本, 进入维护阶段
-
5、执行参数编辑时丢失问题修复;
-
6、新增任务测试Demo,方便在开发时进行任务逻辑测试;
#### 6.16 版本 V1.8.0 特性[Coding]
-
1、任务Cron更新逻辑优化,改为rescheduleJob,同时防止cron重复设置;
#### TODO LIST
-
1、任务权限管理:执行器为粒度分配权限,核心操作校验权限;
-
2、任务分片:一个任务被拆分成N个独立的任务单元,然后由分布式部署的执行器分别执行某一个或几个分片单元;
...
...
xxl-job-admin/src/main/java/com/xxl/job/admin/core/schedule/XxlJobDynamicScheduler.java
View file @
25cf93fd
...
...
@@ -193,15 +193,28 @@ public final class XxlJobDynamicScheduler implements ApplicationContextAware, In
// TriggerKey : name + group
TriggerKey
triggerKey
=
TriggerKey
.
triggerKey
(
jobName
,
jobGroup
);
JobKey
jobKey
=
new
JobKey
(
jobName
,
jobGroup
);
CronTrigger
oldTrigger
=
(
CronTrigger
)
scheduler
.
getTrigger
(
triggerKey
);
if
(
oldTrigger
!=
null
)
{
// avoid repeat
String
oldCron
=
oldTrigger
.
getCronExpression
();
if
(
oldCron
.
equals
(
cronExpression
)){
return
true
;
}
// CronTrigger : TriggerKey + cronExpression
CronScheduleBuilder
cronScheduleBuilder
=
CronScheduleBuilder
.
cronSchedule
(
cronExpression
).
withMisfireHandlingInstructionDoNothing
();
CronTrigger
cronTrigger
=
TriggerBuilder
.
newTrigg
er
().
withIdentity
(
triggerKey
).
withSchedule
(
cronScheduleBuilder
).
build
();
oldTrigger
=
oldTrigger
.
getTriggerBuild
er
().
withIdentity
(
triggerKey
).
withSchedule
(
cronScheduleBuilder
).
build
();
//scheduler.rescheduleJob(triggerKey, cronTrigger);
// rescheduleJob
scheduler
.
rescheduleJob
(
triggerKey
,
oldTrigger
);
}
else
{
// CronTrigger : TriggerKey + cronExpression
CronScheduleBuilder
cronScheduleBuilder
=
CronScheduleBuilder
.
cronSchedule
(
cronExpression
).
withMisfireHandlingInstructionDoNothing
();
CronTrigger
cronTrigger
=
TriggerBuilder
.
newTrigger
().
withIdentity
(
triggerKey
).
withSchedule
(
cronScheduleBuilder
).
build
();
// JobDetail-JobDataMap fresh
JobKey
jobKey
=
new
JobKey
(
jobName
,
jobGroup
);
JobDetail
jobDetail
=
scheduler
.
getJobDetail
(
jobKey
);
/*JobDataMap jobDataMap = jobDetail.getJobDataMap();
jobDataMap.clear();
...
...
@@ -212,6 +225,8 @@ public final class XxlJobDynamicScheduler implements ApplicationContextAware, In
triggerSet
.
add
(
cronTrigger
);
scheduler
.
scheduleJob
(
jobDetail
,
triggerSet
,
true
);
}
logger
.
info
(
">>>>>>>>>>> resumeJob success, JobGroup:{}, JobName:{}"
,
jobGroup
,
jobName
);
return
true
;
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment