【问题标题】:Using Django's ORM in a Celery Task在 Celery 任务中使用 Django 的 ORM
【发布时间】:2011-10-07 18:15:17
【问题描述】:

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

似乎没有人问这个问题。然而,对我来说,这是基本的。

这个example 暗示这没什么大不了的,但是有人可以解释一下 Celery 和 Django 之间的会话管理和 ORM 作用域是如何工作的吗?

【问题讨论】:

    标签: django django-models celery django-celery


    【解决方案1】:

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

    问题在于,酸洗模型实例就像拍摄它的快照当时。 Unpickling 不会触及数据库。

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

    【讨论】:

      【解决方案2】:

      你可能想看看django-celery

      当作为 celery 任务进行工作时,您希望将所有详细信息传递给 celery,例如发送电子邮件,您需要传入“from”、“to”、“subject”和“身体”。

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

      希望对你有帮助。

      【讨论】:

      猜你喜欢
      • 2011-06-19
      • 2017-08-17
      • 2015-10-20
      • 1970-01-01
      • 2019-11-08
      • 1970-01-01
      • 2012-09-06
      • 1970-01-01
      • 2014-03-16
      相关资源
      最近更新 更多