adtechpotok / messenger-adapter
Symfony Messenger组件的队列适配器
0.1.22
2018-10-11 11:43 UTC
Requires
- doctrine/orm: *
- enqueue/amqp-tools: ^0.8.23
- enqueue/enqueue-bundle: ^0.8.0
- symfony/messenger: 4.1.3
- symfony/options-resolver: ^3.4|^4.1
Requires (Dev)
- phpunit/phpunit: ^7.1@dev
- symfony/yaml: ^3.4@dev|^4.1@dev
This package is not auto-updated.
Last update: 2024-09-26 17:04:22 UTC
README
此Symfony Messenger传输允许您使用Enqueue从所有支持的代理发送和接收您的消息。
使用方法
- 安装传输
composer req enqueue/messenger-adapter
- 按照正常方式配置Enqueue包(查看Enqueue的包文档)。如果您使用的是食谱,您只需配置环境变量来配置
default
Enqueue传输
# .env # ... ###> enqueue/enqueue-bundle ### ENQUEUE_DSN=amqp://guest:guest@localhost:5672/%2f ###< enqueue/enqueue-bundle ###
- 配置Messenger的传输(我们将命名为
amqp
)以使用Enqueue的default
传输
# config/packages/messenger.yaml framework: messenger: transports: amqp: enqueue://default
- 路由需要通过消息队列的消息
# config/packages/framework.yaml framework: messenger: # ... routing: 'App\Message\MyMessage': amqp
- 消费!
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'] )));