pyrrole / amqp
此软件包最新版本(6.4)没有提供许可证信息。
Symfony pyrrole 适配器 for amqp
6.4
2024-03-18 13:18 UTC
Requires
- php: ^8.0
- ext-sockets: *
- php-amqplib/php-amqplib: ^3.6.1
- symfony/dependency-injection: ^6.4
This package is not auto-updated.
Last update: 2024-10-01 20:25:57 UTC
README
入门
此软件包是 Psyllium 库的一部分。它提供了一种简单的方法来在您的应用程序中使用 RabbitMQ。允许您在队列系统中定义监听器和消息生产者。
安装
要安装此软件包,您需要在项目中使用 Composer。有关安装说明,请参阅 文档。
composer require psyllium/amqp
启用 Bundle
通过将其添加到项目 Kernel.php 文件中注册的 Bundle 列表中来启用它
config/bundles.php
return [
Psyllium\Amqp\PsylliumAmqp::class => ['all' => true]
];
config/packages/psyllium_amqp.yaml
psyllium:
rabbitmq:
hostname: '%hostname%'
port: '%port%'
user: '%user%'
pass: '%password%'
配置
这样,您就可以创建使用由 Bundle 生成的队列系统连接的生产者和监听器。
config/services.yaml
psyllium.rabbitmq.listener:
class: 'Psyllium\Amqp\Infrastructure\RabbitMQ\Listener'
factory: ['@Psyllium\Amqp\Infrastructure\RabbitMQ\ListenerFactory', 'create']
arguments:
- '%queue_name%'
config/services.yaml
psyllium.rabbitmq.producer:
class: 'Psyllium\Amqp\Infrastructure\RabbitMQ\Producer'
factory: [ '@Psyllium\Amqp\Infrastructure\RabbitMQ\ProducerFactory', 'create' ]
arguments:
- '%exchange_name%'
如何在代码中使用?
监听器
$this->listener->listen(
function (AMQPMessage $message): void {
$message->getBody()
// do something with message
$message->ack();
}
);
生产者
定义实现 EventInterface 接口的类
use Psyllium\Amqp\Domain\EventModel\EventInterface;
class Example implements EventInterface
向队列发送消息
$this->producer->produce(
new Example()
);