[ http://docs.celeryproject.org/en/latest/getting-started/first-steps-with-celery.html ]に記載されているすべての手順に従いました これはコードです:
from __future__ import absolute_import
from celery import Celery
#app = Celery('tasks', broker='pyamqp://guest@localhost//')
app = Celery('tasks', backend='redis://localhost', broker='pyamqp://guest@localhost//')
@app.task
def add(x, y):
return x + y
次のコマンドを使用してセロリワーカーを実行すると
celery -A tasks worker --loglevel=info
バックエンドの設定で構文エラーが発生します。これはエラーメッセージです:
[2018-07-10 16:37:21,970: CRITICAL/MainProcess] 回復不能なエラー: SyntaxError('invalid syntax', ('c:\users\user_\appdata\local\programs\python\python37-32\lib\site -packages\celery\backends\redis.py', 22, 19, 'from . import async, base\n'))Traceback (最新の呼び出しが最後): ファイル "c:\users\user_\appdata\local\programs \python\python37-32\lib\site-packages\kombu\utils\objects.py"、42 行目、get return obj 内。口述[自己。名前] KeyError: 'backend' 上記の例外の処理中に、別の例外が発生しました: Traceback (最新の呼び出しが最後): File "c:\users\user_\appdata\local\programs\python\python37-32\lib\site- packages\celery\worker\worker.py"、205 行目、start self.blueprint.start(self) ファイル "c:\users\user_\appdata\local\programs\python\python37-32\lib\site-packages \celery\bootsteps.py"、115 行目、start self.on_start() ファイル "c:\users\user_\appdata\local\programs\python\python37-32\lib\site-packages\celery\apps\worker .py"、139 行目、on_start self.emit_banner() ファイルの "c:\users\user_\appdata\local\programs\python\python37-32\lib\site-packages\celery\apps\worker.py"、 154 行目、emit_banner ' \n'、self.startup_info(artlines=not use_image)))、ファイル "c:\users\user_\appdata\local\programs\python\python37-32\lib\site-packages\celery\apps\worker.py"、217 行目、startup_info の results=self.app.backend.as_uri()、ファイル「c:\users\user_\appdata\local\programs\python\python37-32\lib\site-packages\kombu\utils\objects.py」、44 行目 値 = objを取得します。口述[自己。名前] =自分。get(obj) ファイル "c:\users\user \appdata\local\programs\python\python37-32\lib\site-packages\celery\app\base.py"、1196 行目、バックエンドで自己を返します。get_backend() ファイル "c:\users\user \appdata\local\programs\python\python37-32\lib\site-packages\celery\app\base.py"、914 行目、get_backend self.loader) ファイル " c:\users\user \appdata\local\programs\python\python37-32\lib\site-packages\celery\app\backends.py"、70 行目、by_url で by_name(バックエンド、ローダー) を返す、url ファイル" c:\ユーザー\ユーザー\appdata\local\programs\python\python37-32\lib\site-packages\celery\app\backends.py"、50 行目、by_name cls = symbol_by_name(backend, aliases) File "c:\users\user_\ appdata\local\programs\python\python37-32\lib\site-packages\kombu\utils\imports.py"、56 行目、symbol_by_name モジュール = imp(module_name, package=package, **kwargs) ファイル "c: \users\user_\appdata\local\programs\python\python37-32\lib\importlib_ init _.py"、127 行目、import_module return _bootstrap._gcd_import(name[level:], package, level) File "", 1006 行目、_gcd_import ファイル ""、983 行目、_find_and_load ファイル ""、967 行目、_find_and_load_unlocked ファイル ""、677 行目、_load_unlocked ファイル ""、724 行目、exec_module ファイル ""、860 行目、get_code ファイル "" の 791 行目、source_to_code ファイル "" の 219 行目call_with_frames_removed ファイル "c:\users\user \appdata\local\programs\python\python37-32\lib\site-packages\celery\backends\redis.py"、22 行目 . import async, base ^ SyntaxError:無効な構文
ただし、代わりにコメント行を使用すると、結果のバックエンドが無効になっているだけで問題はなく、結果のバックエンドを redis-server に設定する必要があります