Spring заботится об отключении вашего ExecutorService?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Spring заботится об отключении вашего ExecutorService?

Сообщение Anonymous »

В моем классе конфигурации есть компонент для фиксированного пула

Код: Выделить всё

@Bean
public ExecutorService fixedThreadPool() {
return Executors.newFixedThreadPool(200);
}
и я автоматически подключаю его позже в каком-то классе. Во время исследования я обнаружил, что это лучший способ завершить работу службы-исполнителя согласно документации Java

Код: Выделить всё

   void shutdownAndAwaitTermination(ExecutorService pool) {
pool.shutdown(); // Disable new tasks from being submitted
try {
// Wait a while for existing tasks to terminate
if (!pool.awaitTermination(60, TimeUnit.SECONDS)) {
pool.shutdownNow(); // Cancel currently executing tasks
// Wait a while for tasks to respond to being cancelled
if (!pool.awaitTermination(60, TimeUnit.SECONDS))
System.err.println("Pool did not terminate");
}
} catch (InterruptedException ie) {
// (Re-)Cancel if current thread also interrupted
pool.shutdownNow();
// Preserve interrupt status
Thread.currentThread().interrupt();
}
}
Но я также обнаружил, что Spring делает это за вас, если ваш ExecutorService является компонентом. У меня вопрос - это правда? Если да, то это, конечно, проще, поскольку я сомневаюсь, куда поместить упомянутый выше код. Если я помещу его в класс, в котором использую этот компонент, я могу использовать этот компонент в некоторых других классах в будущем, и это просто кажется неправильным.

Подробнее здесь: https://stackoverflow.com/questions/509 ... torservice
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»