Django-celery: передача объекта запроса работнику

Как я могу передать объект запроса django в celery worker. При попытке передать объект запроса он выдает ошибку

Can't Pickle Input Objects

Кажется, что сельдерей сериализует любые аргументы, переданные рабочему. Я попытался использовать другие методы сериализации, такие как JSON.

CELERY_TASK_SERIALIZER = "JSON"

но это не работает.

можно ли настроить сельдерей, так что он не будет сериализовать данные. Или я могу преобразовать объект запроса в строку перед передачей в worker, а затем снова преобразовать возражать в рабочий.

спасибо заранее...

1 ответов


вы не можете рассолить объекты запроса Django (см. этот вопрос для более подробной информации). Вместо этого вы должны передать соответствующую информацию из объекта запроса, который вам нужен, в задачи сельдерея.

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