roryy/trafficjam

RabbitMQ 或 SQS 的队列库

v0.6.1 2022-10-23 17:24 UTC

This package is auto-updated.

Last update: 2024-09-23 21:39:26 UTC


README

PHP 队列库,用于 RabbitMQ。也可以添加更多队列类型,如 SQS

请勿在生产环境中使用,因为在新版本达到 1.0 之前可能会出现 BC 破坏。

安装

composer require roryy/trafficjam "0.6.*"

使用方法

要使用 Trafficjam 库结合 Rabbitmq,您首先需要设置 Rabbitmq 凭据。

如下所示

use Trafficjam\Infrastructure\RabbitMq\Connection;
use Trafficjam\Infrastructure\RabbitMq\RabbitMqQueue;

$connection = new Connection('localhost', 5672, 'guest', 'guest');

然后创建一个队列,如下所示

$queue = new RabbitMqQueue($connection, $queueName, $durable, $exchange, $routingKey);
$trafficjam = new Trafficjam($queue);

要向队列发布一条或多条消息

$trafficjam->publish('test 1');
$trafficjam->publish('test 2');

并且消费(带有回调),别忘了确认

$trafficjam->consume(function (Consumable $msg) use ($trafficjam) {
    $message = $msg->getMessage();
    echo ' msg: '. $message .PHP_EOL;

    $trafficjam->acknowledge($msg);
});

这将输出

test 1
test 2

未来

将来,此库也将支持 SQS。

贡献

如果您想使用除 RabbitMQ 之外的另一个队列系统,请在创建自己的队列时实现 Queue 接口。请创建一个 pull request。

许可证

Trafficjam 采用 MIT 许可证授权。有关详细信息,请参阅附带 LICENSE 文件。