我有一个基于ruby的应用程序,它有许多不同的消息队列(+200个不同的队列),所有这些消息队列都需要单独进行限制/速率限制。我试图用这个糖果自动售货机类比来说明问题
现在我将如何实现这样的系统/算法?我一直在考虑把消息/" candy"进入不同的redis列表/集合或RabbitMQ队列,但是以各个速率从每个队列中弹出它们似乎是一项艰巨的任务。是否有一些技术比redis更适合这项工作?
答案 0 :(得分:0)
您可以使用Resque(也使用Redis进行持久化)。您可以为每种类型的“糖果”使用不同的队列。并为--interval
选项的不同值为每个队列启动一个worker。
$ bin/resque work --queues=blue --interval=10
$ bin/resque work --queues=green --interval=2
$ bin/resque work --queues=red --interval=5