overblog / activemq-bundle
本包最新版本(2.1.0)没有提供许可证信息。
OverBlog ActiveMQ Bundle
2.1.0
2018-03-05 07:08 UTC
Requires
- php: >=5.3.3
- centraldesktop/stomp: 2.0.*
- symfony/symfony: ^2.8|^3.0
README
为Symfony提供的ActiveMQ Bundle。
安装
composer req overblog/activemq-bundle
使用方法
定义发布者和消费者
overblog_active_mq: connections: default: user: '%env(MQ_USER)%' password: '%env(MQ_PASSWORD)%' servers: '%mq_servers%' publishers: foo: connection: default options: type: queue name: foo.notification bar: connection: default options: type: queue name: bar.notification consumers: foo: connection: default handler: App\Consumer\FooConsumer options: type: queue name: foo.notification # queue name prefetchSize: 10 bar: connection: default handler: App\Consumer\BarConsumer options: type: queue name: bar.notification prefetchSize: 10 services: App\Consumer\BarConsumer: ~ App\Consumer\FooConsumer: ~
发布消息的示例:您可以通过服务ID overblog_active_mq.{PUBLISHER_NAME}
访问发布者,例如 overblog_active_mq.foo
或 overblog_active_mq.bar
(针对上述配置)。服务不是公开的,因此请创建公开别名或注入它。
<?php namespace App\Controller; use Overblog\ActiveMqBundle\ActiveMq\Publisher; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; class BazController { public function webhookCallbackAction(Request $request, Publisher $publisher) { $content = trim($request->getContent()); $publisher->publish($content); return new Response('Successful notification', 200); } }
消费者示例
<?php namespace App\Consumer; use Overblog\ActiveMqBundle\ActiveMq\ConsumerInterface; use Overblog\ActiveMqBundle\ActiveMq\Message; class FooConsumer extends Consumer { /** * {@inheritdoc} */ public function execute(Message $message) { // here you treat your message. Return false to noack the message. } }