diff --git a/spring-context-support/src/main/java/org/springframework/scheduling/quartz/SimpleThreadPoolTaskExecutor.java b/spring-context-support/src/main/java/org/springframework/scheduling/quartz/SimpleThreadPoolTaskExecutor.java index 458f5c3c13..0b28859803 100644 --- a/spring-context-support/src/main/java/org/springframework/scheduling/quartz/SimpleThreadPoolTaskExecutor.java +++ b/spring-context-support/src/main/java/org/springframework/scheduling/quartz/SimpleThreadPoolTaskExecutor.java @@ -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() { diff --git a/spring-context/src/main/java/org/springframework/scheduling/SchedulingTaskExecutor.java b/spring-context/src/main/java/org/springframework/scheduling/SchedulingTaskExecutor.java index 1c97f7905f..fa3e01692f 100644 --- a/spring-context/src/main/java/org/springframework/scheduling/SchedulingTaskExecutor.java +++ b/spring-context/src/main/java/org/springframework/scheduling/SchedulingTaskExecutor.java @@ -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? - *

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). - *

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? + *

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). + *

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; + } } diff --git a/spring-context/src/main/java/org/springframework/scheduling/concurrent/ConcurrentTaskExecutor.java b/spring-context/src/main/java/org/springframework/scheduling/concurrent/ConcurrentTaskExecutor.java index 592e3af73b..4ee6ac5c2c 100644 --- a/spring-context/src/main/java/org/springframework/scheduling/concurrent/ConcurrentTaskExecutor.java +++ b/spring-context/src/main/java/org/springframework/scheduling/concurrent/ConcurrentTaskExecutor.java @@ -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)) { diff --git a/spring-context/src/main/java/org/springframework/scheduling/concurrent/ThreadPoolTaskExecutor.java b/spring-context/src/main/java/org/springframework/scheduling/concurrent/ThreadPoolTaskExecutor.java index df6531719e..84ade56958 100644 --- a/spring-context/src/main/java/org/springframework/scheduling/concurrent/ThreadPoolTaskExecutor.java +++ b/spring-context/src/main/java/org/springframework/scheduling/concurrent/ThreadPoolTaskExecutor.java @@ -381,12 +381,4 @@ public class ThreadPoolTaskExecutor extends ExecutorConfigurationSupport } } - /** - * This task executor prefers short-lived work units. - */ - @Override - public boolean prefersShortLivedTasks() { - return true; - } - } diff --git a/spring-context/src/main/java/org/springframework/scheduling/concurrent/ThreadPoolTaskScheduler.java b/spring-context/src/main/java/org/springframework/scheduling/concurrent/ThreadPoolTaskScheduler.java index 39e7fe17d9..c19ea3a686 100644 --- a/spring-context/src/main/java/org/springframework/scheduling/concurrent/ThreadPoolTaskScheduler.java +++ b/spring-context/src/main/java/org/springframework/scheduling/concurrent/ThreadPoolTaskScheduler.java @@ -298,11 +298,6 @@ public class ThreadPoolTaskScheduler extends ExecutorConfigurationSupport } } - @Override - public boolean prefersShortLivedTasks() { - return true; - } - // TaskScheduler implementation diff --git a/spring-tx/src/main/java/org/springframework/jca/work/WorkManagerTaskExecutor.java b/spring-tx/src/main/java/org/springframework/jca/work/WorkManagerTaskExecutor.java index cdc5800d2c..ebb656a645 100644 --- a/spring-tx/src/main/java/org/springframework/jca/work/WorkManagerTaskExecutor.java +++ b/spring-tx/src/main/java/org/springframework/jca/work/WorkManagerTaskExecutor.java @@ -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