使用芹菜对多进程API呼叫者应用速率限制/节流的最佳方法



这是场景:
我有10名芹菜工人将HTTP请求(通过请求(发送到外部API服务器。该API服务器的API速率限制1000请求/秒。
我想做的是在我身边插入API请求以避免达到速率限制。
我的第一个想法是为芹菜工人重新加入,并在Redis上保留API请求的数量。有其他/最好的实践吗?

谢谢!

芹菜支持指数向退缩和自动检索。

如果您完全不想获得429 Too Many Requests,那么您跟踪您提出的API请求数量的方法是正确的。它称为令牌存储桶,您可能会找到用于用例的通用实现,例如django-simplekeys听起来好像已经在做您的想法。

如果您每个任务执行固定数量的API请求,则使用芹菜rate_limit来注释您的任务是最容易的。它还在内部使用令牌存储桶。

最新更新