2012-07-26 2 views
0

У меня есть два сценария, которые генерируют сообщения в одной очереди, один из сценариев хотел бы, чтобы очередь генерировала дополнительное сообщение после успешного завершения сообщения ack'd - обратите внимание, что это не RPC. Я хочу сделать дополнительную обработку, первое сообщение успешно завершено, но до тех пор, пока первое сообщение не будет успешно обработано, я не могу выполнить второй раунд обработки.RabbitMQ - Возможно ли создать дополнительное сообщение?

У кого-нибудь есть опыт? Моя первоначальная мысль заключается в том, чтобы отправить дополнительные параметры в исходное сообщение, идентифицирующее «следующие шаги», но это кажется немного хакерским, поэтому я надеялся на лучшее решение.

ответ

0

проверить мой ответ на этот вопрос: RabbitMQ get message send confirm

Эта функция позволит вам делать то, что вы хотите.

+0

Это не совсем то, что мне нужно - это, скорее всего, больше RPC (т. Е. Отправить X и получить Y и сделать Z). Я после Do X и, возможно, поставил дополнительные задачи после завершения задачи (не обязательно один, может быть, например, 10). – williamvicary

+0

ответчик-получатель сообщит продюсеру (возможно, другой поток из того, который публикуется), что сообщение было доставлено, тогда вы можете делать все, что захотите. В потоке возвращаемого прослушивателя должно быть правило, которое решает, что он хочет сделать, когда оно получило и подтвердило приход последнего сообщения. – robthewolf

+0

Не уверен, объяснил ли я это достаточно хорошо, извиняюсь. У меня может быть 2+ скрипта, которые будут генерировать сообщения для выполнения в более позднее время (т. Е. Это могут быть пользовательские скрипты, поэтому не будет «ожидания», поскольку поток будет остановлен). Затем некоторые из этих сообщений должны быть отправлены на другие скрипты для добавления дальнейшей обработки, но необязательные не все сообщения нуждаются в дальнейшей обработке. Я бы предпочел, чтобы сценарий потребления создавал больше сообщений для других очередей, но какой лучший подход указывает на скрипт, который ему необходимо, чтобы это передать? – williamvicary

Смежные вопросы