Вот сценарий:
У меня есть основной процесс Java, который использует JMS для публикации в некотором брокере ActiveMQ.
Каждый раз, когда предполагается, что сообщение отправлено посреднику,поток используется из пула потоков фиксированного размера (используя ThreadExecutor), и внутри него выполняются вызовы публикации.
Теперь вызов публикации является блокирующим вызовом, и если брокер не работает, сам поток продолжает ждать.
Я хочу создать пул потоков таким образом, чтобы, если конкретный поток не закончил задачу за X промежуток времени, он просто возвращается, т. Е. Если посредник не работает, а публикация не проходит, потокне ждет и вместо этого возвращается в пул.
На данный момент нет способа сделать этот вызов публикации асинхронным, поэтому единственный способ справиться с этой ситуацией - это, как я думаю, упомянутый выше.
Существуют ли какие-либо ThreadExecutors, которые позволяют мне немедленно прекратить поток, если поток не может выполнить задачу в течение определенного периода времени?мне ??
Хотелось бы от кого-нибудь более элегантного решения.