在Celery任务中使用Django的ORM

时间:2011-07-18 14:44:46

标签: django django-models celery django-celery

Celery任务如何访问Django数据库抽象API?是否需要使用独立Django ORM使用策略之一从头开始编码,还是采用更简化的内置方式或常用方法?

似乎没有人问这个问题。但是,对我而言,这是至关重要的。

这个example意味着它没什么大不了的,但是有人可以解释一下Celery和Django之间的会话管理和ORM范围是如何工作的吗?

2 个答案:

答案 0 :(得分:5)

默认情况下,Celery会挑选其任务参数。 Django模型实例也可以腌制。

问题在于,腌制模型实例就像在那时拍摄的快照一样。 Unpickling不会触及数据库。

这是好还是坏,我想,取决于你的需求。我倾向于将主键发送到我的任务中并重新查询相关对象。

答案 1 :(得分:0)

您可能想查看django-celery

当做芹菜​​任务时,你想把所有细节传递给芹菜,例如发送电子邮件,你要传递“从”,“到”,“主题”和“体”。

如果您想要通知用户正在完成的操作,您可能希望查看Django中的messages framework之类的内容。

我希望有所帮助。