Download the PHP package leberknecht/amqp-rpc-transporter-bundle without Composer
On this page you can find all versions of the php package leberknecht/amqp-rpc-transporter-bundle. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download leberknecht/amqp-rpc-transporter-bundle
More information about leberknecht/amqp-rpc-transporter-bundle
Files in leberknecht/amqp-rpc-transporter-bundle
Package amqp-rpc-transporter-bundle
Short Description The bundle implements RPC functionality for AMQP protocol to the messenger component
License GPL-3.0-or-later
Homepage https://github.com/leberknecht/amqp-rpc-transporter-bundle
Informations about the package amqp-rpc-transporter-bundle
About
A workaround bundle to bring RPC functionality to the AMQP transporter of the Symfony messenger component
What it does
This bundle introduces ampqp-rpc
transporter, which is identical to the normal amqp
transporter, except that it will use reply_to
and correlation_id
headers. On receive, the content of the HandledStamp
will be published to the queue identified in the reply_to
field. On send, a random queue name will be generated and after publishing the original message, we will wait for a response on that queue, then adding ResponseStamp
with the result to the envelope.
Installation
Usage
Then use it like this:
To set the result from the handler, just return something:
Remarks
This is a work-in-progress, as a first-shot workaround. It would be much more elegant to override the messenger.transport.amqp.factory
service and add rpc: true
and rpc_queue_name
to the messenger config, so we extend the existing transporter instead of bringing in this new one. Also note: in this state, we will always generate a exclusive queue with a random name for the response. This is sub-optimal for heavy loaded queues, see https://www.rabbitmq.com/tutorials/tutorial-six-python.html
All versions of amqp-rpc-transporter-bundle with dependencies
symfony/framework-bundle Version >=4.0
symfony/messenger Version >=4.3-dev
ext-amqp Version *