ExecutorService запускает только последние добавленные Callable - PullRequest
3 голосов
/ 09 февраля 2012

У меня есть однопоточный сервис-исполнитель для извлечения некоторых данных по сети.

Когда пользователь печатает в окне поиска, я ставлю в очередь возможные сетевые задачи.Я хочу отменить все предыдущие запросы, ставить в очередь и сразу же запускать последний.

Мой текущий подход - переопределить методы execute () и submit () и очистить очередь перед вызовом super.

Есть мысли по этому поводу?

1 Ответ

5 голосов
/ 09 февраля 2012

Не понимаю, почему бы вам не сохранить Future, возвращенное при публикации вызова в службу, а затем cancel() в будущем, если вы не хотите, чтобы оно выполнялось.

например

Future f1 = service.submit(some_task);

// later

f1.cancel(true); // will interrupt if running...

Очиститель ИМО ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...