AMQP 是使用 Laravel 与 RabbitMQ 的一种无痛方法
发布于 作者 Paul Redmond
anik/amqp
软件包由 Syed Sirajul Islam Anik 开发,是一个 php-amqplib 包装器,简化了 RabbitMQ 的使用。
您可以将此软件包与 Laravel、Lumen 和 Laravel Zero 一起使用。在撰写本文时,您需要手动配置服务提供程序(已提交一个 pull 请求 用于软件包发现)。
我们最近写了一篇关于 Laravel RabbitMQ 队列驱动 软件包的文章,它是一个队列驱动程序,使您能够将 RabbitMQ 与 Laravel 队列 API 一起使用。您可以将 anik/amqp
视为一个更通用的软件包,在 php-amqplib
之上提供了便利的功能,而 RabbitMQ 队列驱动程序则是 Laravel 队列的即插即用驱动程序。
从软件包的自述文件来看,以下是如何发布消息
app('amqp')->publish('Message to direct exchange', 'routing-key', [ 'exchange' => [ 'type' => 'direct', 'name' => 'direct.exchange', ],]);
以下是如何消费消息
use Anik\Amqp\ConsumableMessage; // AmqpManager::consume($consumerHandler, $bindingKey, $config);app('amqp')->consume(function (ConsumableMessage $message) { echo $message->getStream() . PHP_EOL; $message->getDeliveryInfo()->acknowledge();}, 'routing-key', [ 'connection' => 'my-connection-name', 'exchange' => [ 'type' => 'direct', 'name' => 'direct.exchange', ], 'queue' => [ 'name' => 'direct.exchange.queue', 'declare' => true, 'exclusive' => false, ], 'qos' => [ 'enabled' => true, 'qos_prefetch_count' => 5, ],]);
有关文档(以及对 RabbitMQ 的概述),请查看软件包作者的文章:面向 PHP 开发人员的 RabbitMQ。您可以在 GitHub 上 ssi-anik/amqp 了解有关此软件包的更多信息,获取完整的安装说明并查看源代码。