Skip to content

Commit 2a0551a

Browse files
authored
Update task: reduce the expiration of coordinator key. (#16)
1 parent 89c86b0 commit 2a0551a

File tree

1 file changed

+9
-2
lines changed

1 file changed

+9
-2
lines changed

task/task.go

+9-2
Original file line numberDiff line numberDiff line change
@@ -353,7 +353,7 @@ func (coordinator *Coordinator) coordinate(jobName string, scheduledTime time.Ti
353353
if scheduledInterval == 0 {
354354
redisKeyDuration = 5 * time.Second
355355
} else {
356-
redisKeyDuration = scheduledInterval
356+
redisKeyDuration = coordinator.getCoordinatorKeyExpiration(scheduledInterval)
357357
}
358358
if err != nil {
359359
if err == redis.Nil {
@@ -404,6 +404,13 @@ func (coordinator *Coordinator) coordinate(jobName string, scheduledTime time.Ti
404404
return stat, err
405405
}
406406

407+
func (coordinator *Coordinator) getCoordinatorKeyExpiration(scheduledInterval time.Duration) time.Duration {
408+
if scheduledInterval <= time.Second {
409+
return scheduledInterval
410+
}
411+
return scheduledInterval - time.Second
412+
}
413+
407414
func (coordinator *Coordinator) isJobSchedulable(name string, scheduledTime time.Time, scheduledInterval time.Duration) (bool, error) {
408415
key := coordinator.getCoordinatorKey(name)
409416
scheduledTime = scheduledTime.Truncate(time.Second)
@@ -462,7 +469,7 @@ func (coordinator *Coordinator) getScheduledTime(jobName string) (time.Time, err
462469
value, err := client.Get(contextTODO, key).Result()
463470
if err != nil {
464471
if err == redis.Nil {
465-
err = nil
472+
return time.Time{}, nil
466473
}
467474
return time.Time{}, newCoordinateError(err)
468475
}

0 commit comments

Comments
 (0)