SchedulingTaskExecutor provides prefersShortLivedTasks default method
Issue: SPR-17116
This commit is contained in:
@@ -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
|
||||
return future;
|
||||
}
|
||||
|
||||
/**
|
||||
* This task executor prefers short-lived work units.
|
||||
*/
|
||||
@Override
|
||||
public boolean prefersShortLivedTasks() {
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void destroy() {
|
||||
|
||||
@@ -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;
|
||||
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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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)) {
|
||||
|
||||
@@ -381,12 +381,4 @@ public class ThreadPoolTaskExecutor extends ExecutorConfigurationSupport
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* This task executor prefers short-lived work units.
|
||||
*/
|
||||
@Override
|
||||
public boolean prefersShortLivedTasks() {
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -298,11 +298,6 @@ public class ThreadPoolTaskScheduler extends ExecutorConfigurationSupport
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean prefersShortLivedTasks() {
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
// TaskScheduler implementation
|
||||
|
||||
|
||||
@@ -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
|
||||
return future;
|
||||
}
|
||||
|
||||
/**
|
||||
* This task executor prefers short-lived work units.
|
||||
*/
|
||||
@Override
|
||||
public boolean prefersShortLivedTasks() {
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------------------------------
|
||||
// Implementation of the JCA WorkManager interface
|
||||
|
||||
Reference in New Issue
Block a user