overblog/activemq-bundle

本包最新版本(2.1.0)没有提供许可证信息。

OverBlog ActiveMQ Bundle

安装次数: 39,073

依赖关系: 0

建议者: 0

安全: 0

星标: 10

关注者: 20

分支: 6

开放问题: 3

类型:symfony-bundle

2.1.0 2018-03-05 07:08 UTC

This package is auto-updated.

Last update: 2024-09-08 18:56:23 UTC


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.foooverblog_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.
    }
}