Являются ли отдельные очереди для клиентов хорошим способом отправки сообщений только им? - PullRequest
0 голосов
/ 19 декабря 2018

У меня есть система, в которой клиенты извлекают задачи из очереди (через amqp, используя RabbitMQ в качестве сервера сообщений).Когда новый клиент появляется, он тянет задачу, сообщает главному серверу, что он отвечает за эту конкретную задачу, и начинает выполнять долгосрочную задачу.Со стороны сервера я хочу иметь возможность отменить задачу на этом клиенте, чтобы он мог перейти к другой в случае, если задача уже вызывает ошибки.

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

Когда клиент порождается, это хороший подход, когда клиент устанавливает выделенный обмен и очередь только для него, где сервер можетотправлять команды на?

1 Ответ

0 голосов
/ 20 декабря 2018

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

Затем, когда клиент тянетзадача также создает свою собственную исключительную очередь и связывает эту очередь с темой обмена для определенного ключа маршрутизации "отменить задачу X".Затем клиент подписывается на эту очередь.Если задача должна быть отменена, «серверная сторона» может опубликовать сообщение для обмена темой с соответствующим ключом маршрутизации.


ПРИМЕЧАНИЕ: команда RabbitMQ контролирует список рассылки rabbitmq-users и только иногда отвечает на вопросы о StackOverflow.

...