【发布时间】:2014-01-08 22:31:31
【问题描述】:
我遇到了一个非常糟糕的情况。我有以下设置。 我有一个 django 模型,它代表一个带有 django FSM field 的 FSM
我有一个 celery 任务,它发送一封电子邮件,然后推进主要对象 FSM 的状态。从 celery 任务的角度来看,对象“似乎”被保存了。但从主要 django 进程的角度来看,该对象没有被更新。奇怪的是辅助对象被正确保存到数据库中,然后可以从主 django 进程访问。
我在 Celery 任务的对象上显式调用 .save(),并且 date_last_modified = models.DateTimeField(auto_now=True, null=True) 字段在 Celery 任务中的时间戳比主线程晚,尽管我不确定这是否表明任何事情,即它可能已更新,但尚未将更新刷新到数据库。
我正在使用 django 1.5.1, PostgreSQL 9.3.0, 芹菜 v3.1.0, Redis 2.6.10
像这样运行 Celery
$ celery -A tracking worker -E -B -l info
任何关于为什么会发生这种情况的想法将不胜感激
【问题讨论】:
标签: python django postgresql redis celery