【发布时间】:2019-11-13 20:31:11
【问题描述】:
无法将 Django 请求参数传递给 celery 任务
我正在像这样调用 celery 任务方法。 My_task((request, application_data.id), task_id=task_id)
而我的任务方法是这样的: @shared_task(name="create-cloud-storage-task") def My_task(request_data, id):
但是它抛出错误说无法发送请求对象? 这段代码有什么问题
【问题讨论】:
-
由于 Celery 是一个分布式系统,你无法知道任务将在哪个进程中运行,甚至在哪台机器上运行,因此最好通过请求对象提取所需的信息并将其发送给 celery任务作为参数。
-
但是我希望我的所有请求参数都可以在任务中使用,并且参数计数超过 15。向任务发送 15 个参数是个好主意
-
然后将它们作为 kwargs(关键字参数)发送
标签: django-rest-framework celery