在Celery任务中使用Django的ORM

Jos*_*rce 13 django django-models celery django-celery

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

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

这个例子暗示它没什么大不了的,但有人可以解释一下Celery和Django之间的会话管理和ORM范围如何工作?

Dav*_*eck 5

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

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

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


sne*_*eeu 0

您可能想看看django-celery

\n\n

当执行 celery 任务时,您希望将所有详细信息传递给 celery,例如发送电子邮件,您\xe2\x80\x99d 传入 \xe2\x80\x9cfrom\xe2\x80\x9d 的值, \xe2\x80\x9cto\xe2\x80\x9d、\xe2\x80\x9csubject\xe2\x80\x9d 和 \xe2\x80\x9cbody\xe2\x80\x9d。

\n\n

如果您想通知用户操作已完成,您\xe2\x80\x99d 可能想看看Django 中的消息框架之类的东西。

\n\n

我希望这有帮助。

\n