Есть ли способ установить ограничение по времени для каждого запроса из очереди в пул?
У меня есть класс, наследующий ThreadPoolExecutor
public class TaskPool extends ThreadPoolExecutor {
public TaskPool (int initialCountOfThreads, int maxPollSize) {
super(initialCountOfThreads, maxPollSize, 100, TimeUnit.MILLISECONDS, new LinkedBlockingQueue<>(150));
}
Я добавляю задачи в пул потоков
TaskPool taskPool = new TaskPool(2, 50);
for (int i = 0; i < 50000000; i++) {
task = new Task("Test" + i);
taskPool.execute(task);
}
И все задачи, которые находятся в очереди, находятся там, пока она не будет заполнена, а точнее, до 150, и я хочу, чтобы задачи в очереди были удалены через некоторый период времени, если они не включены в пул
com.company.example.TaskPool@2d6a9952[Running, pool size = 50, active threads = 48, queued tasks = 150, completed tasks = 7430]