Параллельная интеграция Spring ThreadpoolTaskExecutor, TaskRejectionException - необходимо понять причину этой ошибки - PullRequest
1 голос
/ 06 марта 2020

Я использую Spring Integration 2.0 с приведенной ниже конфигурацией компонента для ThreadPoolTaskExecutor.

    <bean id="MyTaskExecutor" class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor" destroy-method="destroy" >
        <property name="corePoolSize" value="25" />
        <property name="maxPoolSize" value="25" />
        <property name="queueCapacity" value="0" />
    </bean> 

Я начинаю видеть следующее сообщение об ошибке в журнале приложения. Необходимо понять, что происходит в ThreadPoolTaskExecutor.

05-Mar-2020 11:34:36,389 |  ERROR |  |  |  |  |  |  | [org.springframework.integration.channel.MessagePublishingErrorHandler:handleError:100] | failure occurred in messaging task
org.springframework.core.task.TaskRejectedException: Executor [java.util.concurrent.ThreadPoolExecutor@40102708[Running, pool size = 25, active threads = 25, queued tasks = 0, completed tasks = 13487163]] did not accept task: org.springframework.integration.util.ErrorHandlingTaskExecutor$1@5de60ad1
    at org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor.execute(ThreadPoolTaskExecutor.java:244)
    at org.springframework.integration.util.ErrorHandlingTaskExecutor.execute(ErrorHandlingTaskExecutor.java:49)
    at org.springframework.integration.endpoint.AbstractPollingEndpoint$Poller.run(AbstractPollingEndpoint.java:174)
    at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:51)
    at org.springframework.scheduling.concurrent.ReschedulingRunnable.run(ReschedulingRunnable.java:81)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
Caused by: java.util.concurrent.RejectedExecutionException: Task org.springframework.integration.util.ErrorHandlingTaskExecutor$1@5de60ad1 rejected from java.util.concurrent.ThreadPoolExecutor@40102709[Running, pool size = 25, active threads = 25, queued tasks = 0, completed tasks = 13487163]
    at java.util.concurrent.ThreadPoolExecutor$AbortPolicy.rejectedExecution(ThreadPoolExecutor.java:2047)
    at java.util.concurrent.ThreadPoolExecutor.reject(ThreadPoolExecutor.java:823)
    at java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:1369)
    at org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor.execute(ThreadPoolTaskExecutor.java:241)
    ... 11 more

Может кто-нибудь определить причину этого?

...