Можно ли передать задачу 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)
Вернуться на верх