是否可以在dango视图中传递芹菜任务作为参数?



我想知道是否有可能在django(基于函数)视图中传递芹菜任务作为参数?

我不知道我是否做错了什么,但是当我尝试这样做时,我得到了这样的错误:

No connection adapters were found for '<@task: my_module.tasks.my_task....

代码如下:

def base_myview(request, task, arg1, arg2):
do stuff ...
taks.apply_async([arg1, arg2])
do more stuff
return some_response
def view1(request, view1_task, arg1, arg2):
return base_myview(request, view1_task, arg1, arg2)
def view2(request, view2_task, another_arg1, another_arg2):
return base_myview(request, view2_task, another_arg1, another_arg2)
# etc..

也许(肯定)这不是最好的解决方案,但是:

TASK_DICT = {
'taks1': view_task1,
'task2': view_task2,
}
def base_myview(request, task_name: str, arg1, arg2):
do stuff ....
TASK_DICT[task_name].apply_async([arg1, arg2])
do more stuff 
return some_response
def view1(request, arg1, arg2, task_name='task1'):
return base_myview(request, task_name, arg1, arg2)
def view2(request, arg1, arg2, task_name='task2'):
return base_myview(request, task_name, arg1, arg2)

最新更新