提交 50550717 编写于 作者: J Juergen Hoeller

SchedulingTaskExecutor provides prefersShortLivedTasks default method

Issue: SPR-17116
上级 c46dacc2
/*
* 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() {
......
/*
* 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
......
/*
* 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
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册