django - Celery 与 Django 和 MongoDB (mongoengine)

标签 django mongodb celery mongoengine

1) 我正在尝试使用 Celery(以 RabbitMQ 作为代理)和 Django 构建一个应用程序 - 使用 MongoDB (mongoengine) 作为模型的数据库。因此,Web 服务器收到的请求将被转换为任务,并在 Celery 的帮助下排队,由工作人员执行。

我遵循了以下教程:

http://docs.celeryproject.org/en/master/django/first-steps-with-django.html#configuring-your-django-project-to-use-celery

https://mongoengine-odm.readthedocs.org/en/latest/django.html

但我仍然收到以下错误:

配置不正确:settings.DATABASES 配置不正确。请提供引擎值。

正如两个教程中提到的,settings.DATABASES 应该被注释,而不是它应该只有

mongoengine.connect('myDB')

但错误正是与未配置数据库有关。

(除此之外,我还没有为 Celery 配置任何结果后端。)

有人可以帮我提供关于我必须设置什么以及在哪里设置的建议吗?

2)另一个问题是:在只涉及 Celery 的项目中,总是有一个 Celery 实例。但在关于使用 Django 和 Celery 构建 Web 应用程序的教程中我没有看到任何提及这一点。我是否必须显式实例化 Celery 还是默认在其他地方完成?

最佳答案

1)如果有人对答案感兴趣,我终于设法让它工作,但我不确定我是否正确理解发生了什么。

很明显,问题是我没有为 Celery 设置结果后端。当我将以下行放入 settings.py 中后,我就消除了错误:

CELERY_RESULT_BACKEND =“amqp”

2) 我的项目(我正在使用 djcelery)正在运行,而无需我显式实例化 Celery。我认为这是由框架在后面的某个地方完成的。

关于django - Celery 与 Django 和 MongoDB (mongoengine),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14348280/

相关文章:

node.js - 如何检查MongoDB native nodejs驱动程序中是否存在集合?

python - 在 Celery 中控制和查询任务

message-queue - 使用 Celery 动态创建队列

node.js - Mongoose 中的中间件与副本集的中间件,用于发送电子邮件/短信

node.js - findOneAndUpdate,回调必须是一个函数,得到 [object Object] ,NodeJs,mongoose 错误

python - Django : local variable 'date' referenced before assignment but I import it

mysql - 如何在 MySql docker 镜像中安装 sudo 和 nano 命令

python - 如何使用 Celery 和 Flask 实现缓存系统

python - Django:如何测试 'HttpResponsePermanentRedirect'

python - Django - 反转自定义管理 URL