您怀疑,问题是因为Celery工人不知道任务模块。您需要做两件事:
对于项目(1),最简单的方法可能是使用“ Docker卷”将代码的主机目录装载到celery docker实例上。就像是:
docker run --link some-rabbit:rabbit -v /path/to/host/code:/home/user --name some-celery -d celery
/path/to/host/code
您的主机路径在哪里,并且/home/user
是将其安装在实例上的路径。为什么/home/user
是这种情况?因为Dockerfile
celery映像的将工作目录(WORKDIR
)定义为/home/user
。
(注意:完成项目(1)的另一种方法是使用“内置”代码构建自定义docker映像,但我将其留给读者练习。)
对于项目(2),您需要创建一个导入任务文件的Celery配置文件。这是一个更普遍的问题,因此,我将指向先前的stackoverflow答案:Celery收到类型为未注册的任务(运行示例)