Как передать параметр запроса dajngo в задачу сельдерея - PullRequest
0 голосов
/ 03 июля 2019

Не удалось передать параметр запроса Django в задачу сельдерея

Я вызываю метод задания сельдерея вот так. My_task ((request, application_data.id), task_id = task_id)

И мой метод задания такой: @shared_task (имя = "создать облако-хранения-задание") def My_task (request_data, id):

Но выдает ошибку, говорящую, что нельзя отправить объект запроса? Что не так в этом коде

1 Ответ

0 голосов
/ 03 июля 2019

Поскольку объект запроса содержит ссылки на вещи, которые нецелесообразно сериализовать - например, загруженные файлы или сокет, связанный с запросом - нет универсального способа его сериализации.

Вместо этого вам следуетпросто вытащите и передайте те части, которые вам нужны.Например, что-то вроде:

Если вы используете user_id в своей задаче или что-то еще, что вы будете использовать.

My_task((request.user.id, application_data.id), task_id=task_id)

@shared_task(name="create-cloud-storage-task")
def My_task(request_user_id, id):

Ссылка: передача объекта запроса django взадача сельдерея

...