РНР является Producer-ом для очереди - добавляет в нее задачи.
Сторонний код является Consumer-ом и выполняет эти задачи.
В простом варианте, когда это задачи, скажем, на рассылку почты или уменьшение размера изображений, тут всё кажется понятным: мой код на РНР добавил задачу в очередь и забыл про нее. Сторонний код получил задачу из очереди и обработал ее.
Но в варианте, в котором нужно получить результат задачи, я что-то не могу разобраться чисто архитектурно. Например, мой код на РНР кидает в очередь задачу, подписчик должен ее выполнить и вернуть результат работы поставщику (моему коду). Каким способом этот возврат результатов реализуется? Есть ли в RabbitMQ какие-то средства для этого или же результат работы должен передаваться используя другую очередь, скажем, для результатов, в которой сторонний код, исполняющий задачу, будет в роли поставщика, а мой код на РНР будет в роли подписчика?
Подскажите пожалуйста, а то что-то в этом месте образовался пробел в понимании работы.
И ждёт - Максим имеет ввиду что предположительно у тебя демон, если же нет - то лучше не кидать задачу в очередь а просто вызывать нужные тебе методы сервиса
Обсуждают сегодня