adtechpotok/messenger-adapter

Symfony Messenger组件的队列适配器

安装: 204

依赖者: 1

建议者: 0

安全: 0

星标: 0

关注者: 1

分支: 55

类型:symfony-bundle

0.1.22 2018-10-11 11:43 UTC

README

此Symfony Messenger传输允许您使用Enqueue从所有支持的代理发送和接收您的消息。

使用方法

  1. 安装传输
composer req enqueue/messenger-adapter
  1. 按照正常方式配置Enqueue包(查看Enqueue的包文档)。如果您使用的是食谱,您只需配置环境变量来配置default Enqueue传输
# .env
# ...

###> enqueue/enqueue-bundle ###
ENQUEUE_DSN=amqp://guest:guest@localhost:5672/%2f
###< enqueue/enqueue-bundle ###
  1. 配置Messenger的传输(我们将命名为amqp)以使用Enqueue的default传输
# config/packages/messenger.yaml
framework:
    messenger:
        transports:
            amqp: enqueue://default
  1. 路由需要通过消息队列的消息
# config/packages/framework.yaml
framework:
    messenger:
        # ...

        routing:
            'App\Message\MyMessage': amqp
  1. 消费!
bin/console messenger:consume-messages amqp

高级使用

配置队列和交换

在传输DSN中,您可以添加额外的配置。以下是参考DSN(注意,值仅用于示例)

enqueue://default
    ?queue[routingKey][name]=queue_name
    &topic[name]=topic_name
    &topic[type]=topic|fanout|direct
    &deliveryDelay=1800
    &delayStrategy=Enqueue\AmqpTools\RabbitMqDelayPluginDelayStrategy
    &timeToLive=3600
    &receiveTimeout=1000
    &priority=1

在特定主题上发送消息

您可以使用TransportConfiguration信封项发送特定主题的消息

use Enqueue\MessengerAdapter\EnvelopeItem\TransportConfiguration;

// ...

$this->bus->dispatch((new Envelope($message))->with(new TransportConfiguration(
    ['topic' => 'specific-topic']
)));