2017-06-12 38 views
1

バージョン1.7からバージョン1.11.2にDjangoを、バージョン3.1.25からバージョン4.0.1にCeleryをアップグレードしました。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を使用する必要があります。

同じコマンドで、私はもはや労働者を雇うことができません。詳細に
よりは、私は、次のコマンドを実行しよう:

セロリは私のvirtualenvの中celery.exeファイルです
celery worker -app=proj.celery:app -l info 

(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 

これは、次のエラーが発生しました。私は32

Python2.7とWindowsを実行しているコマンド

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 

を実行すると、問題が発生します

ありがとうございました

答えて

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上でセロリ4をインポートするには問題はありません、私はビリヤードとampqに関する問題があります(これを見てください:https://github.com/celery/celery/issues/issues/4082)とにかく、今はWindows上でセロリ4を使用するのは非常に難しいので、固定されていない限り/パッチ/フォーク、セロリに固執すべき3 – Antwane

+0

リンクありがとう!とにかく、コマンドラインからセロリをインポートしようとすると( virtualenvのpython)うまくいきます。セロリコマンドを実行すると問題が発生しました... – Giordano

関連する問題