Как лучше всего обработать RejectedExecutionException
при использовании ThreadPoolExecutor
в Java?
Я хочу убедиться, что отправленная задача не должна быть упущена из виду и должна наверняка казнят. На данный момент нет никаких жестких требований в реальном времени для выполнения задачи.
Одна из вещей, которые, как я думал, можно сделать, - это подождать в цикле, пока я не узнаю, что в исполняемой очереди есть место, а затем продолжить и добавить его в очередь.
Будем рады, если люди поделятся своим опытом.
Добавляю возможное решение, которое я задумал:
while(executor.getQueue().remainingCapacity <= 0){
// keep looping
Thread.sleep(100);
};
//if the loop exits ,indicates that we have space in the queue hence
//go ahead and add to the queue
executor.execute(new ThreadInstance(params));