php - RabbitMQ - 将数据发送给另一个消费者

标签 php rabbitmq

我是 RabbitMQ 使用新手。我想知道是否可以将数据从一个消费者发送到另一个消费者。

让我解释一下,

我想实现Pipeline pattern到我的应用程序以管道类执行。

示例:

// payload = 20 (at the entrance)
$pipeline = (new Pipeline)
    ->pipe(function ($payload) {
        return $payload * 10;
    })
    ->pipe(function ($payload) {
        return $payload + 10;
    })
    ->pipe(function ($payload) {
        return $payload - 5;
    })
;
// payload = 205 (at the end)

我想要做的是在消费者中执行第一个回调,完成后将计算出的数据发送给另一个消费者,依此类推。最终将 205 作为 $payload 的值。

我只是想知道是否可以使用 RabbitMQ 做到这一点?

非常感谢您的回复,:)

最佳答案

是的,当然。一个rabbitmq客户端将同时充当消费者和发布者,其中每个“功能”将位于两个独立的线程中,并且每个线程都使用自己的 channel 。

另请注意,您永远不会直接向消费​​者发送消息,而是向交换器发送消息,该交换器将消息(以某些方式)路由到与其绑定(bind)的队列。消费者将自己“附加”到队列并从中消费。

关于php - RabbitMQ - 将数据发送给另一个消费者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43630251/

相关文章:

php - 在循环中获取 mysqli_fetch_array 中的下一行 用数据库数据填充 HTML 表单

php - HTML 中的 Ruby 类似于 PHP

c# - RabbitMQ:将消息从一台电脑发送到另一台电脑

c# - 带有手动 ack 抛出 "Shared Queue Closed"的 RabbitMQ

php - 如何在 FOSUserBundle 中添加和管理 ROLES?

php - Codeigniter 2 将 Controller 限制为命令行

php - 自定义路由 URL 参数

python - 如何查看 RabbitMQ 中的排队任务?

java - RabbitMQ DefaultConsumer 导致消费者标签过多

c# - 在 ASP.NET Core 应用程序中设置 RabbitMQ 消费者