overblog/activemq-bundle

There is no license information available for the latest version (2.1.0) of this package.

OverBlog ActiveMQ Bundle

Installs: 23 579

Dependents: 0

Suggesters: 0

Security: 0

Stars: 11

Watchers: 19

Forks: 6

Open Issues: 3

Type:symfony-bundle

2.1.0 2018-03-05 07:08 UTC

This package is auto-updated.

Last update: 2020-11-21 14:57:45 UTC


README

ActiveMQ Bundle for the Symfony.

Installation

composer req overblog/activemq-bundle

Usage

Define publishers and consumers:

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: ~

An example of how to publish a message: you can access publisher using service id overblog_active_mq.{PUBLISHER_NAME} for example overblog_active_mq.foo or overblog_active_mq.bar for above configuration. Services is not public so create a public alias or inject it.

<?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);
    }
}

An example of a consumer:

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