cat*_*nux 5 message-queue beanstalkd rabbitmq zeromq
我正在使用一个使用受限的 API,比方说:每秒不超过 10 次调用,每天不超过 5000 次调用。
我正在 beanstalkd 队列进程作业中处理此调用。考虑到 API 的限制,我如何限制此作业的处理。
当您使用Beanstalkd时,您可以让管子暂停几秒钟。
当您预订作业时,并且您知道 API 调用在该调用期间失败,您可以将管道暂停X seconds。
您可以从 API 响应中找出暂停管道所需的时间(通常它们会返回您已锁定直到Time X),或者从自适应方式开始,例如在接下来的 60 秒内暂停,并随时增加/减少。
如果您知道可以在将作业放入队列之前延迟或提前分散,您还可以向作业添加延迟,这样它就不会立即执行,这样您就可以随着时间的推移分配作业。
还有一篇关于使用 Redis 进行分布式速率限制的很棒的文章
| 归档时间: |
|
| 查看次数: |
586 次 |
| 最近记录: |