2015-02-12 2 views
0

В чем смысл следующей ошибки? Как я могу его восстановить?ThreadPoolExecutor отклонил ошибку

Exception in thread "UserActionProcessor-8811" java.util.concurrent.RejectedExecutionException: Task [email protected] rejected from [email protected][Running, pool size = 300, active threads = 300, queued tasks = 2000, completed tasks = 7979] 
     at java.util.concurrent.ThreadPoolExecutor$AbortPolicy.rejectedExecution(ThreadPoolExecutor.java:2048) 
     at java.util.concurrent.ThreadPoolExecutor.reject(ThreadPoolExecutor.java:821) 
     at java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:1372) 
     at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:110) 

ответ

1

Это означает, что пул потоков занят, а очередь заполнена. Затем задача отклоняется. Я думаю, вы должны внедрить политику отклонения, если вы не хотите отклонять какую-либо задачу.

2

Вы превысили максимальное число задач, выполняемых параллельно (300), и максимальное количество задач, ожидающих начала выполнения (2000). Служба выполнения не может справиться с такими задачами, или поставленные задачи слишком трудоемки.