Использование Django ORM в задаче Сельдерея

Как может задача Celery получить доступ к API-абстракции базы данных Django? Нужно ли это кодировать с нуля, используя одну из стратегий автономного использования Django ORM, или есть более упорядоченный, встроенный способ или обычная практика?

Кажется, что никто не задает этот вопрос. Однако для меня это фундаментально.

Этот пример подразумевает, что это не имеет большого значения, но может ли кто-нибудь объяснить, как работает управление сеансом и область действия ORM между Celery и Django?

Ответ 1

По умолчанию Сельдерей рассоривает свои параметры задачи. Экземпляры модели Django также можно мариновать.

Уловка заключается в том, что травление экземпляра модели похоже на то, что он делает снимок в это время. Unpickling не касается базы данных.

Является ли это хорошим или плохим, зависит, на ваш взгляд, от ваших потребностей. Я склонен посылать первичный ключ в свои задачи и повторно запрашивать этот объект.

Ответ 2

Вероятно, вы хотите посмотреть django-celery.

Когда вы выполняете работу как задачу сельдерея, вы хотите передать все детали сельдерею, например, чтобы отправить электронное письмо, вы передаете значения для "от", "до", "субъекта" и "тела",.

Если вы хотите уведомить пользователя о выполненном действии, вероятно, вы захотите взглянуть на что-то вроде рамки сообщений в Джанго.

Я надеюсь, что это поможет.