Skip to content

Commit 391592d

Browse files
committed
Merge pull request #248 from ltsopensource/develop
优化Repeat 任务策略
2 parents d28752e + 71b72db commit 391592d

File tree

5 files changed

+12
-12
lines changed

5 files changed

+12
-12
lines changed

lts-admin/src/main/java/com/lts/admin/web/api/RepeatJobQueueApi.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ public RestfulResponse repeatJobUpdate(JobQueueReq request) {
5959
try {
6060
// 如果repeatInterval有修改,需要把triggerTime也要修改下
6161
if (!request.getRepeatInterval().equals(jobPo.getRepeatInterval())) {
62-
long nextTriggerTime = JobUtils.getRepeatTriggerTime(jobPo);
62+
long nextTriggerTime = JobUtils.getRepeatNextTriggerTime(jobPo);
6363
request.setTriggerTime(new Date(nextTriggerTime));
6464
}
6565
// 把等待执行的队列也更新一下

lts-admin/src/main/java/com/lts/admin/web/api/SuspendJobQueueApi.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ public RestfulResponse suspendJobUpdate(String jobType, JobQueueReq request) {
7979
}
8080
// 如果repeatInterval有修改,需要把triggerTime也要修改下
8181
if (!request.getRepeatInterval().equals(jobPo.getRepeatInterval())) {
82-
long nextTriggerTime = JobUtils.getRepeatTriggerTime(jobPo);
82+
long nextTriggerTime = JobUtils.getRepeatNextTriggerTime(jobPo);
8383
request.setTriggerTime(new Date(nextTriggerTime));
8484
}
8585
request.setCronExpression(null);
@@ -161,7 +161,7 @@ public RestfulResponse suspendJobRecovery(JobQueueReq request) {
161161
try {
162162
// 2. add to executable queue
163163
JobPo repeatJob = appContext.getRepeatJobQueue().getJob(request.getJobId());
164-
long nextTriggerTime = JobUtils.getRepeatTriggerTime(repeatJob);
164+
long nextTriggerTime = JobUtils.getRepeatNextTriggerTime(repeatJob);
165165
jobPo.setTriggerTime(nextTriggerTime);
166166
appContext.getExecutableJobQueue().add(jobPo);
167167
} catch (DupEntryException e) {

lts-admin/src/main/webapp/WEB-INF/views/templates/repeatJobQueue.vm

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -271,7 +271,7 @@
271271
}, function (isConfirm) {
272272
if (isConfirm) {
273273
$.ajax({
274-
url: 'api/job-queue/cron-job-delete',
274+
url: 'api/job-queue/repeat-job-delete',
275275
type: 'POST',
276276
dataType: 'json',
277277
data: {jobId: jobId, taskTrackerNodeGroup: taskTrackerNodeGroup},

lts-core/src/main/java/com/lts/core/support/JobUtils.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,12 @@ public class JobUtils {
1010

1111
public static long getRepeatNextTriggerTime(JobPo jobPo) {
1212
long firstTriggerTime = Long.valueOf(jobPo.getInternalExtParam(Constants.QUARTZ_FIRST_FIRE_TIME));
13-
return firstTriggerTime + (jobPo.getRepeatedCount() + 1) * jobPo.getRepeatInterval();
14-
}
15-
16-
public static long getRepeatTriggerTime(JobPo jobPo) {
17-
long firstTriggerTime = Long.valueOf(jobPo.getInternalExtParam(Constants.QUARTZ_FIRST_FIRE_TIME));
18-
return firstTriggerTime + jobPo.getRepeatedCount() * jobPo.getRepeatInterval();
13+
long now = SystemClock.now();
14+
long remainder = (now - firstTriggerTime) % jobPo.getRepeatInterval();
15+
if (remainder == 0) {
16+
return now;
17+
}
18+
return now + (jobPo.getRepeatInterval() - remainder);
1919
}
2020

2121
}

lts-core/src/main/java/com/lts/zookeeper/lts/ZkException.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,15 +26,15 @@ public ZkException(Throwable cause) {
2626
public boolean isZkNoNodeException() {
2727
Throwable cause = getCause();
2828
if (cause != null && cause instanceof KeeperException) {
29-
return KeeperException.Code.NONODE.intValue() != ((KeeperException) cause).getCode();
29+
return KeeperException.Code.NONODE != ((KeeperException) cause).code();
3030
}
3131
return false;
3232
}
3333

3434
public boolean isZkNodeExistsException() {
3535
Throwable cause = getCause();
3636
if (cause != null && cause instanceof KeeperException) {
37-
return KeeperException.Code.NODEEXISTS.intValue() != ((KeeperException) cause).getCode();
37+
return KeeperException.Code.NODEEXISTS != ((KeeperException) cause).code();
3838
}
3939
return false;
4040
}

0 commit comments

Comments
 (0)