Django:执行 cron 命令时,Celery 导入导致错误
Posted
技术标签:
【中文标题】Django:执行 cron 命令时,Celery 导入导致错误【英文标题】:Django: Celery import causes error while executing cron commands 【发布时间】:2013-10-13 17:39:39 【问题描述】:最近在 django 上安装了 celery,它工作正常,但我意识到我的 cron(我的意思是通常的 cron,而不是 celery 的周期性任务)命令没有执行。 我的 cron 中有这样的行:
sudo -u someuser python /home/someuser/django_proj/manage.py somecommand --settings=someapp.settings
而且效果很好。但是如果我在settings.py中添加“import djcelery”,就会出现这个错误:
Unknown command: 'somecommand'
Type 'manage.py help' for usage.
我做错了什么? 附:我知道,celery 有周期性任务,但是我现在不能使用这个功能。
另外,我有“common_settings.py”文件,而 someapp/settings.py 有这个代码:
from common_settings import *
如果我将“import djcelery”添加到 common_settings.py 我会得到这个:
错误:在包含“/home/someuser/django_proj/manage.py”的目录中找不到文件“settings.py”。看来您已经定制了一些东西。您必须运行 django-admin.py,将其传递给您的设置模块。 (如果文件 settings.py 确实存在,它会以某种方式导致 ImportError。)
它试图在 django_proj 文件夹中查找设置,但我这里没有任何设置。
【问题讨论】:
【参考方案1】:看起来,您的应用程序安装不正确。例如,您可能忘记了 INSTALLED_APPS 中的逗号,并且您之前的应用程序在 django 启动时没有激活。 没有任何理由让它坏掉。
【讨论】:
感谢您的回复。我不确定这个错误是因为逗号还是其他原因而发生的。 “ok”设置文件和“broken”设置文件的区别在于“broken”文件有“import djcelery”,仅此而已。以上是关于Django:执行 cron 命令时,Celery 导入导致错误的主要内容,如果未能解决你的问题,请参考以下文章
Django Celery Beat 管理员更新 Cron Schedule 定期任务未生效
Django 1.9 + celery + django-celry 实现定时任务