Можно ли передать задачу celery в качестве параметра в представлении dango?
Я хотел бы узнать, возможно ли передать задачу celery в качестве параметра в представление 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)