バージョン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-results
とdjango-celery-beat
を使用する必要があります。
同じコマンドで、私はもはや労働者を雇うことができません。詳細に
よりは、私は、次のコマンドを実行しよう:
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
を実行すると、問題が発生します
ありがとうございました
はい、私はそれを読んだことがありますが、サポートされていないようですが、テストスイートが渡されます.. – Giordano
実際には、Windows上でセロリ4をインポートするには問題はありません、私はビリヤードとampqに関する問題があります(これを見てください:https://github.com/celery/celery/issues/issues/4082)とにかく、今はWindows上でセロリ4を使用するのは非常に難しいので、固定されていない限り/パッチ/フォーク、セロリに固執すべき3 – Antwane
リンクありがとう!とにかく、コマンドラインからセロリをインポートしようとすると( virtualenvのpython)うまくいきます。セロリコマンドを実行すると問題が発生しました... – Giordano