控制celery worker的消费速度
control consume speed of celery worker
我正在尝试使用我的 Django 应用程序设置 Celery。此应用程序将让用户调用一些 API 并获得响应。然而这个 API 有限制,只允许用户每秒调用它不超过一次。
所以打算用celery来控制调用频率。多个用户可能同时使用这个应用程序,所以我认为我应该将调用部分设置为工作人员。每个人都可以提交调用 API 的请求到队列中,worker 将使用它们。
这里的问题是:我怎样才能将消耗任务的工作(即发送 api 请求)限制为每秒 1 个?
谢谢!
celery tasks 有一个 rate_limit 选项可以做你想做的事。这是 per-worker,因此您需要使用专用队列来确保此任务的所有请求都得到一个工作人员。
我正在尝试使用我的 Django 应用程序设置 Celery。此应用程序将让用户调用一些 API 并获得响应。然而这个 API 有限制,只允许用户每秒调用它不超过一次。
所以打算用celery来控制调用频率。多个用户可能同时使用这个应用程序,所以我认为我应该将调用部分设置为工作人员。每个人都可以提交调用 API 的请求到队列中,worker 将使用它们。
这里的问题是:我怎样才能将消耗任务的工作(即发送 api 请求)限制为每秒 1 个?
谢谢!
celery tasks 有一个 rate_limit 选项可以做你想做的事。这是 per-worker,因此您需要使用专用队列来确保此任务的所有请求都得到一个工作人员。