Django Celery 和多个数据库(Celery、Django 和 RabbitMQ)
是否可以设置与 Django Celery 一起使用的不同数据库?
我有一个配置了多个数据库的项目,并且不希望 Django Celery 使用默认数据库。
如果我仍然可以使用 django celery 管理页面并读取存储在这个不同数据库中的结果,我会很好:)
Is it possible to set a different database to be used with Django Celery?
I have a project with multiple databases in configuration and don't want Django Celery to use the default one.
I will be nice if I can still use django celery admin pages and read results stored in this different database :)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
是的,你可以。
第一:您可以设置两个数据库并为 celery 任务显式指定第二个数据库(例如 obj.save(using='second'))
或创建第二个 settings.py< /code> 将用于芹菜:
yes you can.
first: you can set-up a two databases and specify second one explicitly in for the celery tasks (e.g.
obj.save(using='second')
)or create second
settings.py
which will be used for the celery:应该可以使用 Django 数据库路由器为 django-celery 模型设置一个单独的数据库:
https://docs.djangoproject.com/en/1.4/topics/db/multi-db/#automatic-database-routing
我没有专门对此进行测试与 django-celery 一起使用,但如果由于某种原因它不起作用,那么这是 django-celery (或 Django 本身)中的一个错误,应该修复。
您的路由器看起来像这样:
然后将其添加到您的设置中:
It should be possible to set up a separate database for the django-celery models using Django database routers:
https://docs.djangoproject.com/en/1.4/topics/db/multi-db/#automatic-database-routing
I haven't tested this specifically with django-celery, but if it doesn't work for some reason, then it's a bug in django-celery (or Django itself) that should be fixed.
Your router would look something like this:
Then add this to your settings: