Skip to content

Commit be7150f

Browse files
committed
less transaction needed
1 parent 9f9172d commit be7150f

File tree

2 files changed

+13
-8
lines changed

2 files changed

+13
-8
lines changed

core/src/main/java/org/sterl/spring/persistent_tasks/scheduler/SchedulerService.java

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -103,16 +103,19 @@ public List<Future<TriggerKey>> triggerNextTasks() {
103103
*/
104104
@NonNull
105105
public List<Future<TriggerKey>> triggerNextTasks(OffsetDateTime timeDue) {
106-
List<TriggerEntity> triggers;
107106
if (taskExecutor.getFreeThreads() > 0) {
108-
triggers = triggerService.lockNextTrigger(
109-
name, taskExecutor.getFreeThreads(), timeDue);
107+
final var result = trx.execute(t -> {
108+
var triggers = triggerService.lockNextTrigger(name,
109+
taskExecutor.getFreeThreads(), timeDue);
110+
pingRegistry().addRunning(triggers.size());
111+
return triggers;
112+
});
113+
114+
return taskExecutor.submit(result);
110115
} else {
111-
triggers = Collections.emptyList();
116+
pingRegistry();
117+
return Collections.emptyList();
112118
}
113-
var result = taskExecutor.submit(triggers);
114-
pingRegistry();
115-
return result;
116119
}
117120

118121
/**
@@ -122,7 +125,7 @@ public List<Future<TriggerKey>> triggerNextTasks(OffsetDateTime timeDue) {
122125
*/
123126
public <T extends Serializable> Future<TriggerKey> runOrQueue(
124127
AddTriggerRequest<T> triggerRequest) {
125-
var runningTrigger = trx.execute(t -> {
128+
final var runningTrigger = trx.execute(t -> {
126129
var trigger = triggerService.queue(triggerRequest);
127130
// exit now if this trigger is for the future ...
128131
if (trigger.shouldRunInFuture()) return trigger;

core/src/main/java/org/sterl/spring/persistent_tasks/scheduler/component/TaskExecutorComponent.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,8 @@ public TaskExecutorComponent(TriggerService triggerService, int maxThreads) {
4747

4848
@NonNull
4949
public List<Future<TriggerKey>> submit(List<TriggerEntity> trigger) {
50+
if (trigger == null || trigger.isEmpty()) return Collections.emptyList();
51+
5052
final List<Future<TriggerKey>> result = new ArrayList<>(trigger.size());
5153
for (TriggerEntity triggerEntity : trigger) {
5254
result.add(submit(triggerEntity));

0 commit comments

Comments
 (0)