Browse Source

SchedulingTaskExecutor provides prefersShortLivedTasks default method

Issue: SPR-17116
pull/1915/head
Juergen Hoeller 7 years ago
parent
commit
50550717d6
  1. 10
      spring-context-support/src/main/java/org/springframework/scheduling/quartz/SimpleThreadPoolTaskExecutor.java
  2. 31
      spring-context/src/main/java/org/springframework/scheduling/SchedulingTaskExecutor.java
  3. 8
      spring-context/src/main/java/org/springframework/scheduling/concurrent/ConcurrentTaskExecutor.java
  4. 8
      spring-context/src/main/java/org/springframework/scheduling/concurrent/ThreadPoolTaskExecutor.java
  5. 5
      spring-context/src/main/java/org/springframework/scheduling/concurrent/ThreadPoolTaskScheduler.java
  6. 10
      spring-tx/src/main/java/org/springframework/jca/work/WorkManagerTaskExecutor.java

10
spring-context-support/src/main/java/org/springframework/scheduling/quartz/SimpleThreadPoolTaskExecutor.java

@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
/*
* Copyright 2002-2016 the original author or authors.
* Copyright 2002-2018 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@ -109,14 +109,6 @@ public class SimpleThreadPoolTaskExecutor extends SimpleThreadPool @@ -109,14 +109,6 @@ public class SimpleThreadPoolTaskExecutor extends SimpleThreadPool
return future;
}
/**
* This task executor prefers short-lived work units.
*/
@Override
public boolean prefersShortLivedTasks() {
return true;
}
@Override
public void destroy() {

31
spring-context/src/main/java/org/springframework/scheduling/SchedulingTaskExecutor.java

@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
/*
* Copyright 2002-2013 the original author or authors.
* Copyright 2002-2018 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@ -42,21 +42,20 @@ import org.springframework.core.task.AsyncTaskExecutor; @@ -42,21 +42,20 @@ import org.springframework.core.task.AsyncTaskExecutor;
public interface SchedulingTaskExecutor extends AsyncTaskExecutor {
/**
* Does this {@code TaskExecutor} prefer short-lived tasks over
* long-lived tasks?
* <p>A {@code SchedulingTaskExecutor} implementation can indicate
* whether it prefers submitted tasks to perform as little work as they
* can within a single task execution. For example, submitted tasks
* might break a repeated loop into individual subtasks which submit a
* follow-up task afterwards (if feasible).
* <p>This should be considered a hint. Of course {@code TaskExecutor}
* clients are free to ignore this flag and hence the
* {@code SchedulingTaskExecutor} interface overall. However, thread
* pools will usually indicated a preference for short-lived tasks, to be
* able to perform more fine-grained scheduling.
* @return {@code true} if this {@code TaskExecutor} prefers
* short-lived tasks
* Does this {@code TaskExecutor} prefer short-lived tasks over long-lived tasks?
* <p>A {@code SchedulingTaskExecutor} implementation can indicate whether it
* prefers submitted tasks to perform as little work as they can within a single
* task execution. For example, submitted tasks might break a repeated loop into
* individual subtasks which submit a follow-up task afterwards (if feasible).
* <p>This should be considered a hint. Of course {@code TaskExecutor} clients
* are free to ignore this flag and hence the {@code SchedulingTaskExecutor}
* interface overall. However, thread pools will usually indicated a preference
* for short-lived tasks, allowing for more fine-grained scheduling.
* @return {@code true} if this executor prefers short-lived tasks (the default),
* {@code false} otherwise (for treatment like a regular {@code TaskExecutor})
*/
boolean prefersShortLivedTasks();
default boolean prefersShortLivedTasks() {
return true;
}
}

8
spring-context/src/main/java/org/springframework/scheduling/concurrent/ConcurrentTaskExecutor.java

@ -166,14 +166,6 @@ public class ConcurrentTaskExecutor implements AsyncListenableTaskExecutor, Sche @@ -166,14 +166,6 @@ public class ConcurrentTaskExecutor implements AsyncListenableTaskExecutor, Sche
return this.adaptedExecutor.submitListenable(task);
}
/**
* This task executor prefers short-lived work units.
*/
@Override
public boolean prefersShortLivedTasks() {
return true;
}
private static TaskExecutorAdapter getAdaptedExecutor(Executor concurrentExecutor) {
if (managedExecutorServiceClass != null && managedExecutorServiceClass.isInstance(concurrentExecutor)) {

8
spring-context/src/main/java/org/springframework/scheduling/concurrent/ThreadPoolTaskExecutor.java

@ -381,12 +381,4 @@ public class ThreadPoolTaskExecutor extends ExecutorConfigurationSupport @@ -381,12 +381,4 @@ public class ThreadPoolTaskExecutor extends ExecutorConfigurationSupport
}
}
/**
* This task executor prefers short-lived work units.
*/
@Override
public boolean prefersShortLivedTasks() {
return true;
}
}

5
spring-context/src/main/java/org/springframework/scheduling/concurrent/ThreadPoolTaskScheduler.java

@ -298,11 +298,6 @@ public class ThreadPoolTaskScheduler extends ExecutorConfigurationSupport @@ -298,11 +298,6 @@ public class ThreadPoolTaskScheduler extends ExecutorConfigurationSupport
}
}
@Override
public boolean prefersShortLivedTasks() {
return true;
}
// TaskScheduler implementation

10
spring-tx/src/main/java/org/springframework/jca/work/WorkManagerTaskExecutor.java

@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
/*
* Copyright 2002-2017 the original author or authors.
* Copyright 2002-2018 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@ -287,14 +287,6 @@ public class WorkManagerTaskExecutor extends JndiLocatorSupport @@ -287,14 +287,6 @@ public class WorkManagerTaskExecutor extends JndiLocatorSupport
return future;
}
/**
* This task executor prefers short-lived work units.
*/
@Override
public boolean prefersShortLivedTasks() {
return true;
}
//-------------------------------------------------------------------------
// Implementation of the JCA WorkManager interface

Loading…
Cancel
Save