arthem / rabbit-bundle
简单的RabbitMQ组件
0.3.0
2023-06-13 13:53 UTC
Requires
- php: >=7.4
- ext-json: *
- php-amqplib/rabbitmq-bundle: ^2.7
- psr/log: ^1
- symfony/console: ^4|^5|^6
- symfony/framework-bundle: ^4|^5|^6
Requires (Dev)
- doctrine/orm: ^2.8
- phpunit/phpunit: ^9.5
- symfony/console: ^6
- symfony/framework-bundle: ^6
- symfony/process: ^6
- twig/extensions: ^1.5
Suggests
- ext-openssl: *
- doctrine/orm: ^2.3
- twig/extensions: ^1.5
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; } }