roryy / trafficjam
RabbitMQ 或 SQS 的队列库
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 队列库,用于 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 文件。