芹菜文档说配置文件应在工作目录或python路径中。
from celery import Celery
from properties import config_file
import sys
sys.path.append(config_file)
app = Celery()
app.config_from_object(config_file.split('.')[0])
这里config_file是 /opt/celery/celery_config.py
。这个想法是为用户提供创建配置文件的自由。该文档说,配置文件应在工作目录或SYS路径中。我在sys路径中添加了config_file,但是当启动工作者时,它正在丢弃导入错误。
是否有必要将config_file与创建芹菜实例的模块相同的目录?
不必在同一目录中具有配置。
简单的解决方案是在启动芹菜工作者时更改目录。如果您使用主管或任何其他工具来启动Worker,则可以指定要运行工作的目录。
在这种情况下,您可以将目录指定为/opt/celery
和芹菜命令为celery worker -l info --config=celery_config
,它将从/opt/celery/celery_config.py
中选择配置。
另外,您可以将该目录添加到sys.path
。在您的芹菜模块中,将目录附加到sys.path。
import sys
from celery import Celery
sys.path.append('/opt/celery/')
app = Celery()
app.config_from_object('celery_config')
这将从/opt/celery/celery_config.py
。