2017-06-12 93 views
1

我已經將Django從版本1.7升級到版本1.11.2,並將芹菜從版本3.1.25升級到版本4.0.1。如何在Django中運行芹菜工1.11

此升級之前,我是能夠運行芹菜工作人員這樣扔django-celery包:

python manage.py celery worker -Q <my_queue> --app=proj.celery:app --concurrency=5 

閱讀芹菜發行說明和文檔,我發現使用Django的ORM,結果後臺,我可以我不再使用django-celery包,但我必須使用django-celery-resultsdjango-celery-beat,而不是它。

使用相同的命令我不能再運行工人。
更詳細我嘗試運行以下命令:

celery worker -app=proj.celery:app -l info 

其中芹菜是我的virtualenv的celery.exe文件(virtual_env_name \腳本\ celery.exe)。

這提出了以下錯誤:

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 

我試圖直接在命令行中輸入芹菜,並且效果很好。當我運行該命令的問題被提升

celery.py文件

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)) 

項目結構

- main 
    - proj 
     - __init__.py 
     - setting.py 
     - celery.py 
- manage.py 

我運行Python2.7和Windows 32

在此先感謝

回答

0

Celery 4 documentation

Microsoft Windows is no longer supported.

The test suite is passing, and Celery seems to be working with Windows, but we make no guarantees as we are unable to diagnose issues on this platform. If you are a company requiring support on this platform, please get in touch.

不幸的是,它不再能夠在Windows上運行芹菜工人。你必須留在3.1.x版本...

+0

是的,我已經讀過它,但似乎它不支持,但測試套件通過.. – Giordano

+0

其實,我沒有問題在Windows上導入Celery 4,但我有檯球和ampq問題(請參閱:https://github.com/celery/celery/issues/4082)無論如何,現在,在Windows上使用芹菜4是非常困難的,只要它不是固定的/修補/分叉,你應該堅持芹菜3 – Antwane

+0

感謝您的鏈接!無論如何,如果我嘗試從命令行( virtualenv的python)導入芹菜效果很好。當我運行芹菜命令時引發的問題... – Giordano