roryy/flatfishqueue

此包已被废弃,不再维护。作者建议使用 roryy/trafficjam 包代替。

RabbitMQ 或 SQS 的队列库

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

This package is auto-updated.

Last update: 2022-10-23 17:37:40 UTC


README

PHP queue library for RabbitMQ. It's possible to add more queue types like SQS

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

安装

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 文件。