繁体   English   中英

如何为Resque队列添加速率限制?

[英]How to add a rate limit to a Resque queue?

因此,我有一个调用API的Resque worker,问题是该API的速率限制为每秒2个请求。

有没有办法在特定队列中处理的每个作业之间增加延迟?

PS队列中可能有数千个待处理的作业。

为什么在过程结束时不睡一段给定的时间? 好吧,也许您希望您的老员工做一些有用的事情。 在CPU时间中,半秒是很多时间-您可以在那里做一些有用的事情,例如从另一个不受速率限制的队列中处理作业。

我本人也遇到同样的问题,因此我很想找到解决方案。 似乎有两种简单的方法可以做到这一点。 第一个想法是使用resque调度程序并在插入作业之前预先计算运行该作业的时间。 这对我来说似乎容易出错。 第二种是使用https://github.com/flyerhzm/resque-restriction之类的宝石(免责声明:只是通过某种谷歌搜索找到的。尚未使用)和速率限制,因为您将工作队列中拉出。 理论上似乎是一个可靠的解决方案。 请注意,如果您仍无法执行该作业,则它永远不会脱离队列,因此您将撤回其他事项-更有效地利用您的工人。

根据我的评论,我建议在每种Resque process方法结束时只执行给定的sleep时间(秒)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM