User Tools

Site Tools


typo3-message-bus-rabbitmq

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
typo3-message-bus-rabbitmq [2023/11/11 16:28] – created admintypo3-message-bus-rabbitmq [2023/11/12 01:34] (current) admin
Line 24: Line 24:
 ddev composer req symfony/amqp-messenger ddev composer req symfony/amqp-messenger
 </code> </code>
 +
 +Configure the ''amqp'' transport method:
 +
 +<code yaml Configuration/Services.yaml>
 +services:
 +  Symfony\Component\Messenger\Bridge\Amqp\Transport\AmqpTransportFactory:
 +    public: true
 +  Symfony\Component\Messenger\Bridge\Amqp\Transport\AmqpTransport:
 +    factory: [ '@Symfony\Component\Messenger\Bridge\Amqp\Transport\AmqpTransportFactory', 'createTransport' ]
 +    arguments:
 +      # You may want to store this in a environment variable.
 +      # Example: amqp://<username>:<password>@<host>:<port>/<vhost>/<exchange>
 +      $dsn: 'amqp://rabbitmq:rabbitmq@rabbitmq:5672/%2f/messages'
 +      # For all available options see https://github.com/symfony/amqp-messenger/blob/6.3/Transport/Connection.php#L38-L65
 +      $options:
 +        auto_setup: true
 +        # Queue options https://github.com/symfony/amqp-messenger/blob/6.3/Transport/Connection.php#L67-L72
 +        queues:
 +          MagicRabbit:
 +            flags: 2
 +        # Exchange options: https://github.com/symfony/amqp-messenger/blob/6.3/Transport/Connection.php#L74-L80
 +        exchange:
 +          type: fanout
 +
 +    tags:
 +      - name: 'messenger.sender'
 +        identifier: 'amqp'
 +      - name: 'messenger.receiver'
 +        identifier: 'amqp'
 +</code>
 +
 +Use the ''ampq'' transport:
 +
 +<code php ext_localconf.php>
 +// Unset the default, so that it no longer applies
 +unset($GLOBALS['TYPO3_CONF_VARS']['SYS']['messenger']['routing']['*']);
 +// Set Webhook-Messages and DynamicsMessage to asynchronous transport via RabbitMQ
 +foreach ([WebhookMessageInterface::class, MyCustomMessage::class] as $className) {
 +    $GLOBALS['TYPO3_CONF_VARS']['SYS']['messenger']['routing'][$className] = 'amqp'; // The tags identifier defines in Configuration/Services.yaml
 +}
 +</code>
 +
 +For more details see:
 +
 +  * https://usetypo3.com/messages-in-typo3.html
 +  * https://docs.typo3.org/m/typo3/reference-coreapi/main/en-us/ApiOverview/MessageBus/Index.html
typo3-message-bus-rabbitmq.1699716531.txt.gz · Last modified: 2023/11/11 16:28 by admin