Skip to content

Commit 087425a

Browse files
committed
Move listener for immediate-execution to builder
1 parent 92189fa commit 087425a

File tree

4 files changed

+15
-18
lines changed

4 files changed

+15
-18
lines changed

db-scheduler/src/main/java/com/github/kagkarlsson/scheduler/TriggerCheckForDueExecutions.java renamed to db-scheduler/src/main/java/com/github/kagkarlsson/scheduler/ImmediateCheckForDueExecutions.java

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -19,22 +19,21 @@
1919
import org.slf4j.Logger;
2020
import org.slf4j.LoggerFactory;
2121

22-
class TriggerCheckForDueExecutions extends AbstractSchedulerListener {
23-
private static final Logger LOG = LoggerFactory.getLogger(TriggerCheckForDueExecutions.class);
24-
private SchedulerState schedulerState;
22+
class ImmediateCheckForDueExecutions extends AbstractSchedulerListener {
23+
private static final Logger LOG = LoggerFactory.getLogger(ImmediateCheckForDueExecutions.class);
24+
private final Scheduler scheduler;
2525
private Clock clock;
26-
private Waiter executeDueWaiter;
2726

28-
public TriggerCheckForDueExecutions(
29-
SchedulerState schedulerState, Clock clock, Waiter executeDueWaiter) {
30-
this.schedulerState = schedulerState;
27+
public ImmediateCheckForDueExecutions(
28+
Scheduler scheduler, Clock clock) {
29+
this.scheduler = scheduler;
3130
this.clock = clock;
32-
this.executeDueWaiter = executeDueWaiter;
3331
}
3432

3533
@Override
3634
public void onExecutionScheduled(
3735
TaskInstanceId taskInstanceId, Instant scheduledToExecutionTime) {
36+
SchedulerState schedulerState = scheduler.getSchedulerState();
3837
if (!schedulerState.isStarted() || schedulerState.isShuttingDown()) {
3938
LOG.debug(
4039
"Will not act on scheduling event for execution (task: '{}', id: '{}') as scheduler is starting or shutting down.",
@@ -48,7 +47,7 @@ public void onExecutionScheduled(
4847
"Task-instance scheduled to run directly, triggering check for due executions (unless it is already running). Task: {}, instance: {}",
4948
taskInstanceId.getTaskName(),
5049
taskInstanceId.getId());
51-
executeDueWaiter.wakeOrSkipNextWait();
50+
scheduler.triggerCheckForDueExecutions();
5251
}
5352
}
5453
}

db-scheduler/src/main/java/com/github/kagkarlsson/scheduler/Scheduler.java

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -80,8 +80,7 @@ protected Scheduler(
8080
Waiter executeDueWaiter,
8181
Duration heartbeatInterval,
8282
int numberOfMissedHeartbeatsBeforeDead,
83-
boolean enableImmediateExecution,
84-
List<SchedulerListener> schedulerListeners,
83+
List<SchedulerListener> schedulerListeners,
8584
PollingStrategyConfig pollingStrategyConfig,
8685
Duration deleteUnresolvedAfter,
8786
Duration shutdownMaxWait,
@@ -109,9 +108,6 @@ protected Scheduler(
109108
this.schedulerListeners = new SchedulerListeners(schedulerListeners);
110109
this.dueExecutor = dueExecutor;
111110
this.housekeeperExecutor = housekeeperExecutor;
112-
if (enableImmediateExecution) {
113-
this.schedulerListeners.add(new TriggerCheckForDueExecutions(schedulerState, clock, executeDueWaiter));
114-
}
115111
delegate = new StandardSchedulerClient(clientTaskRepository, this.schedulerListeners, clock);
116112
this.failureLogger = ConfigurableLogger.create(LOG, logLevel, logStackTrace);
117113

db-scheduler/src/main/java/com/github/kagkarlsson/scheduler/SchedulerBuilder.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -302,8 +302,7 @@ public Scheduler build() {
302302
waiter,
303303
heartbeatInterval,
304304
numberOfMissedHeartbeatsBeforeDead,
305-
enableImmediateExecution,
306-
schedulerListeners,
305+
schedulerListeners,
307306
pollingStrategyConfig,
308307
deleteUnresolvedAfter,
309308
shutdownMaxWait,
@@ -313,6 +312,10 @@ public Scheduler build() {
313312
candidateDueExecutor,
314313
candidateHousekeeperExecutor);
315314

315+
if (enableImmediateExecution) {
316+
scheduler.registerSchedulerListener(new ImmediateCheckForDueExecutions(scheduler, clock));
317+
}
318+
316319
if (registerShutdownHook) {
317320
Runtime.getRuntime()
318321
.addShutdownHook(

db-scheduler/src/main/java/com/github/kagkarlsson/scheduler/testhelper/ManualScheduler.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,8 +59,7 @@ public class ManualScheduler extends Scheduler {
5959
waiter,
6060
heartbeatInterval,
6161
SchedulerBuilder.DEFAULT_MISSED_HEARTBEATS_LIMIT,
62-
executeImmediately,
63-
schedulerListeners,
62+
schedulerListeners,
6463
pollingStrategyConfig,
6564
deleteUnresolvedAfter,
6665
Duration.ZERO,

0 commit comments

Comments
 (0)