arthem/rabbit-bundle

简单的RabbitMQ组件

安装数: 15,350

依赖者: 0

建议者: 0

安全性: 0

星标: 0

关注者: 2

分支: 0

开放问题: 1

类型:symfony-bundle

0.3.0 2023-06-13 13:53 UTC

README

通过处理器与消费者简单快捷地工作的设置

安装

composer require arthem/rabbit-bundle

添加自动标记功能

# config/services.yaml

services:
    # ...
    _instanceof:
        # ...
        Arthem\Bundle\RabbitBundle\Consumer\Event\EventMessageHandlerInterface:
            tags: ['arthem_rabbit.event_handler']

处理器

每条消息基于类型,允许定义相应的处理器。处理器可以支持多种类型。处理器和类型可以被分割到队列中

默认情况下,此组件配置

  • 一个名为 event 的队列
  • 其直接交换名为 x-event
  • 相应的消费者名为 event

与RabbitMQBundle不同,此组件只提供一个消息生产者。消息类型允许将消息发送到适当的交换。

失败

失败的消息处理可以记录在数据库表中。

首先启用此功能

# config/packages/arthem_rabbit.yaml

arthem_rabbit:
    failure: ~

创建自己的Entity,该Entity必须实现 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;
    }
}