Я попал в очень неприятную ситуацию. У меня есть следующая настройка. У меня есть модель django, представляющая FSM с django FSM fieldМодель Django не сохраняется в базе данных внутри задачи Celery
У меня есть задача сельдерея, которая отправляет электронное письмо, а затем передает состояние основных объектов FSM. С точки зрения задачи сельдерея объект «кажется» сохраняется. Но с точки зрения основного django-процесса объект не обновляется. Странно, что вспомогательные объекты сохраняются должным образом в БД, а затем доступны из основного процесса django.
я явно вызвать .save()
на объекте от задачи сельдерея и date_last_modified = models.DateTimeField(auto_now=True, null=True)
поля имеет более позднюю метку времени в сельдерее задаче, чем основной поток, хотя я не уверен, что это признак чего-либо, то это может иметь был обновлен, но обновление не было сброшено в БД.
Я использую Django 1.5.1, 9.3.0, PostgreSQL сельдерея v3.1.0, Redis 2.6.10
Запуск сельдерей как так $ celery -A tracking worker -E -B -l info
Любые идеи, почему это может происшествие было бы весьма полезно
Параллельные обновления были проблемой в моем случае, установка https://django-save-the-change.readthedocs.org помогла. Благодаря! –