roryy / flatfishqueue
v0.6.1
2022-10-23 17:24 UTC
Requires
- php: >=7.4
- php-amqplib/php-amqplib: ~3.3
- psr/log: *
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.17
- phpunit/phpunit: ^9.5
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 文件。