在运行有 Magento 2 的电子商务中使用 RabbitMQ 的强大功能。

安装: 1

依赖: 0

建议: 0

安全: 0

星星: 2

观察者: 5

分支: 1

开放问题: 0

类型:magento2-module

dev-master 2017-12-17 17:32 UTC

This package is auto-updated.

Last update: 2024-08-29 04:54:18 UTC


README

在运行有 Magento 2 的电子商务中使用 RabbitMQ 的强大功能。

安装

使用 composer: composer require monsieurbiz/amqp

如果您想使用延迟消息,那么您必须在 RabbitMQ 实例上安装[延迟消息插件][https://github.com/rabbitmq/rabbitmq-delayed-message-exchange]。

创建一个交换机

magento monsieurbiz:amqp:exchange:create consume-me

交换机名称为 consume-me

您还可以使用一个延迟交换机

magento monsieurbiz:amqp:exchange:create --delayed consume-me

您可以一次创建多个交换机

magento monsieurbiz:amqp:exchange:create first-exchange-name second-exchange-name

消费一个队列

您必须创建一个消费者/工作者。

查看 Console/Command/SampleCommand.php,它是一个基本的消费者。

在一个交换机中发送消息

假设 $amqp\MonsieurBiz\Amqp\Helper\Amqp 的一个实例。

直接消息

$amqp->sendMessage(
    'consume-me',
    ['my message content']
);

延迟消息

您需要在 RabbitMQ 实例上安装延迟消息插件

$amqp->sendMessage(
    'consume-me',
    ['my message content'],
    [
        'application_headers' => new AMQPTable([
            'x-delay' => 5000 // 5 seconds of delay
        ]),
    ]
);

RPC

假设 $rpc\MonsieurBiz\Amqp\Helper\Rpc 的一个实例。

直接请求

发送请求到代理并立即获取响应

$response = $rpc->directRequest(
    'consume-me',
    ['my message content']
);

echo $response; // ["my message content"]

批量消息

在发送批量之前,您应该了解 RPC 的工作方式。

别忘了保存每个请求的相关标识符。

$c1 = $rpc->request('consume-me', ['my first message']);
$c2 = $rpc->request('consume-me', ['my second message']);

$responses = $rpc->getResponses();

var_dump($responses[$c1]); // string(20) "["my first message"]"
var_dump($responses[$c2]); // string(21) "["my second message"]"

消费者运行得越快,您就会得到越快的响应。

LICENSE

(c) Monsieur Biz opensource@monsieurbiz.com

有关完整的版权和许可信息,请参阅与源代码一起分发的 LICENSE 文件。