A simple and faster setup to work with consumer through handlers.
composer require arthem/rabbit-bundle
Add auto-tag feature:
# config/services.yaml
services:
# ...
_instanceof:
# ...
Arthem\Bundle\RabbitBundle\Consumer\Event\EventMessageHandlerInterface:
tags: ['arthem_rabbit.event_handler']
Every message are based on type which allow to define their corresponding handler. A handler can support multiple types. Handlers and types can be split into queues
By default, this bundle configures:
eventx-eventeventIn opposite to RabbitMQBundle, this one provides only one message producer. The message type allows to send message to the appropriate exchange.
Failed message processing can be logged in a database table.
First enable the feature:
# config/packages/arthem_rabbit.yaml
arthem_rabbit:
failure: ~
Create your own Entity which must implement Arthem\Bundle\RabbitBundle\Model\FailedEventInterface:
<?php
namespace App\Entity;
use Doctrine\ORM\Mapping as ORM;
use Arthem\Bundle\RabbitBundle\Model\FailedEvent as BaseFailedEvent;
/**
* @ORM\Entity
*/
class FailedEvent extends BaseFailedEvent
{
/**
* @var string
*
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue
*/
protected $id;
public function getId(): string
{
return (string)$this->id;
}
}
How can I help you explore Laravel packages today?