gpt4 book ai didi

node.js - RabbitMQ - 并行任务消耗

转载 作者:行者123 更新时间:2023-12-02 16:42:16 29 4
gpt4 key购买 nike

我使用 RabbitMQ 将消息从 symfony 发送到 nodeJs。我想说需要并行处理。

每个客户端都有一个作业,可能需要 5 分钟到 70 分钟才能完成,具体取决于给定客户端要处理的数据量。客户可以随机发布职位请求。

假设 5 个客户发布了他们的工作,完成各自工作所需的时间如下

client1 job - 65 mins
client2 job - 10 mins
client3 job - 5 mins
client4 job - 10 mins
client5 job - 20 mins

普通队列存在问题,因为 client1 的作业需要 65 分钟才能完成,因此 client2 必须等待 75 分钟 (65 + 10) 才能完成需要 10 分钟的作业。

我知道在 RabbitMQ 中我可以创建许多工作人员来处理这项工作,但是根据工作所需的时间以及工作在队列中的位置,客户端可能需要很多时间才能获得他们的工作。工作已完成。

所以我希望为每个客户创建动态的消费者。每个消费者单独为每个客户完成工作。

这在 Rabbitmq 中可能吗?如果是,如何实现?

enter image description here

最佳答案

您应该检查有关 Fair dispatch 的部分在 Rabbit MQ 教程中。

它向您展示了如何使用 $channel->basic_qos(null, 1, null); 一次仅处理一项作业。这样你就可以公平地分配消息。

关于node.js - RabbitMQ - 并行任务消耗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42243522/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com