gpt4 book ai didi

ruby - 为消息队列实现类似 "leaky bucket"的算法

转载 作者:IT王子 更新时间:2023-10-29 06:02:48 26 4
gpt4 key购买 nike

我有一个基于 ruby​​ 的应用程序,它有许多不同的消息队列(+200 个不同的队列),所有这些都需要单独进行 throttle/速率限制。我试图用这个糖果自动售货机类比来说明问题

Leaky Candy Vending Machine

现在我将如何着手实现这样的系统/算法?我一直在考虑将消息/“糖果”放入不同的 redis 列表/集合或 RabbitMQ 队列中,但是让它们以单独的速率从每个队列中弹出似乎是一项艰巨的任务。是否有一些技术比 Redis 更适合这项工作?

最佳答案

你可以使用 Resque (它也使用 Redis 进行持久化)。您可以为每种类型的“糖果”使用不同的队列,并为每个队列启动一个 worker,并为 --interval 选项设置不同的值。

$ bin/resque work --queues=blue  --interval=10
$ bin/resque work --queues=green --interval=2
$ bin/resque work --queues=red --interval=5

关于ruby - 为消息队列实现类似 "leaky bucket"的算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29117729/

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