我想知道是否有可能在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)