我已将Django从版本1.7升级到版本1.11.2,将Celery从版本3.1.25升级到版本4.0.1。
在升级之前,我能够以这种方式运行芹菜工人抛出django-celery
包裹:
python manage.py celery worker -Q <my_queue> --app=proj.celery:app --concurrency=5
阅读Celery发行说明和文档,我发现使用Django ORM作为结果后端,我不能再使用django-celery
包,但我必须使用django-celery-results
和{{1}而不是它。
使用相同的命令我不能再运行工人了。
更详细的我尝试运行以下命令:
django-celery-beat
celery是我的virtualenv(virtual_env_name \ Scripts \ celery.exe)中的celery.exe文件。
这引发了以下错误:
celery worker -app=proj.celery:app -l info
我尝试直接从命令行导入芹菜,效果很好。运行命令
时会出现问题celery.py文件
Traceback (most recent call last):
File "c:\python27\Lib\runpy.py", line 162, in _run_module_as_main
"__main__", fname, loader, pkg_name)
File "c:\python27\Lib\runpy.py", line 72, in _run_code
exec code in run_globals
File "C:\Python27\virtualenv\<virtual_env_name>\Scripts\celery.exe\__main__.py", line 5, in <module>
File "path\of\my\project\celery.py", line 8, in <module>
from celery import Celery
ImportError: cannot import name Celery
项目结构
from __future__ import absolute_import
import os
from celery import Celery
import django
django.setup()
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'proj.settings')
app = Celery('proj')
app.config_from_object('django.conf:settings')
app.autodiscover_tasks()
@app.task(bind=True)
def debug_task(self):
print('Request: {0!r}'.format(self.request))
我正在运行Python2.7和Windows 32。
提前致谢
答案 0 :(得分:0)
不再支持Microsoft Windows。
测试套件正在通过,Celery似乎正在使用Windows,但我们不保证,因为我们无法诊断此平台上的问题。如果您是需要此平台支持的公司,请与我们联系。
不幸的是,在Windows上运行芹菜工作者已经不可能了。您必须使用3.1.x版本...