2014-10-26 1 views
2

Очереди сообщений в основном используются для выполнения асинхронных задач на сервере. & Недавно я прочитал об инфраструктуре Executor, которая также выполняет эту же процедуру. & управляет потоками для выполнения асинхронных задач. Может ли кто-нибудь сказать мне разницу между ними?Разница между инфраструктурой Executor и очередями сообщений, такими как JMS

ответ

6

Основное отличие заключается в том, что инфраструктура Executor предназначена для выполнения внутрипрограммной задачи и выполнения, тогда как JMS предназначена для организации очередей между различными программами (обычно) на разных машинах.

Другие различия включают в себя:

  • JMS очереди (или может быть) стойкими, где, как исполнитель, и так далее в памяти только.

  • Очереди JMS могут (я считаю) использоваться в транзакционной системе, где в качестве Исполнителя и т. Д. Не может. (В частности, это является следствием упорного/непостоянного различия.)


Так это означает, что, если мое приложение не распространяется, я могу использовать рамки палача.

Может быть ...

Для примера я хочу, чтобы закодировать систему уведомления фба стиля & публиковать подписываться будет использование рамок исполнителя быть подходящим для этого? Я предполагаю, что код будет на одной машине в одном db.

Проблема в том, что стандартные реализации инфраструктуры Executor не помещают очереди задач в базу данных. Это просто легкие массивы данных в памяти. Они не сохраняют, если ваше приложение перезапускается.

Теперь, я полагаю, может написать свой класс Исполнителя/Исполнителя, который помещает очередь в базу данных. Но зачем беспокоиться? Было бы проще использовать JMS или подобное ...

+0

Так что это означает, что если мое приложение не будет распространено, я могу использовать инфраструктуру Executor. Для экземпляра я хочу закодировать систему уведомлений в стиле fb и опубликовать подписку, будет ли для этого использоваться использование структуры исполнителя? Я предполагаю, что код будет на одном компьютере в одном db – underdog

+0

. Структура jms также может поддерживать отказоустойчивость, балансировку нагрузки, повторить попытку неудачи, переместить в другую очередь на слишком много сбоев ... –

+0

... ни один из которых не делает много смысла в сценариях, для которых предназначены исполнители. –