pyrrole/amqp

此软件包最新版本(6.4)没有提供许可证信息。

Symfony pyrrole 适配器 for amqp

安装: 361

依赖: 0

建议: 0

安全性: 0

类型:symfony-bundle

6.4 2024-03-18 13:18 UTC

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()
);