Celery ValueErrorの解決策:解凍するための値が足りない(期待値3、結果0)
2022-02-23 22:36:45
背景
最近、プロジェクトのためにタスクキューCeleryの使用を学ぶ必要があり、デモを書くために公式サイトに従って、タイトルとしてエラーが発生し、最終的にgithubの問題で解決策を発見し、以下に記録された。
シーンの復元
ローカル環境は以下の通りです。
- Windows 10
- Python 3.5.2
- セロリ 4.1.0
私は、次のことを行っています。 前任者が翻訳した中国語文書 デモをたたき起こしたこと。
コード
tasks.py
:
from celery import Celery
app = Celery('tasks', broker='redis://:[email protected]:6379/0')
@app.task
def add(x, y):
return x + y
ワーカーを実行する
celery -A tasks worker --loglevel=info
出力します。
-------------- celery@kong9wei11 v4.1.0 (latentcall)
---- **** -----
--- * *** * -- Windows-10-10.0.14393-SP0 2018-01-12 19:01:39
-- * - **** ---
- ** ---------- [config]
- ** ---------- . > app: tasks:0x157fd248550
- ** ---------- . > transport: redis://:**@114.67.225.0:6379/0
- ** ---------- . > results: disabled://
- *** --- * --- . > concurrency: 4 (prefork)
-- ******* ---- . > task events: OFF (enable -E to monitor tasks in this worker)
--- ***** -----
-------------- [queues]
. > celery exchange=celery(direct) key=celery
[tasks] .
. tasks.add
[2018-01-12 19:01:40,029: INFO/MainProcess] Connected to redis://:**@114.67.225.0:6379/0
[2018-01-12 19:01:40,130: INFO/MainProcess] mingle: searching for neighbors
[2018-01-12 19:01:40,550: INFO/SpawnPoolWorker-1] child process 9048 calling self.run()
[2018-01-12 19:01:40,557: INFO/SpawnPoolWorker-2] child process 9028 calling self.run()
[2018-01-12 19:01:40,578: INFO/SpawnPoolWorker-3] child process 13064 calling self.run()
[2018-01-12 19:01:40,611: INFO/SpawnPoolWorker-4] child process 9856 calling self.run()
[2018-01-12 19:01:41,693: INFO/MainProcess] mingle: all alone
[2018-01-12 19:01:42,212: INFO/MainProcess] celery@xx ready.
タスクコードを呼び出す
manager.py
:
from tasks import add
add.delay(4, 4)
実行
python manager.py
すると、workerでエラーが報告されます。
[2018-01-12 19:08:15,545: INFO/MainProcess] Received task: tasks.add[5d387722-5389-441b-9b01-a619b93b4702]
[2018-01-12 19:08:15,550: ERROR/MainProcess] Task handler raised error: ValueError('not enough values to unpack (expected 3, got 0)',)
Traceback (most recent call last):
File "d:\programmingsoftware\python35\lib\site-packages\billiard\pool.py", line 358, in workloop
result = (True, prepare_result(fun(*args, **kwargs)))
File "d:\programmingsoftware\python35\lib\site-packages\celery\app\trace.py", line 525, in _fast_trace_task
tasks, accept, hostname = _loc
ValueError: not enough values to unpack (expected 3, got 0)
解決策
元のページ Windowsでタスクを実行できない
Win10でcelery4.xを動かすとこの問題が発生し、解決方法がわからないと他の方の記述を読みました。
まず
`eventlet
pip install eventlet
そして、次のように引数でワーカーを起動します。
celery -A <mymodule> worker -l info -P eventlet
すると、普通に呼び出せるようになります。
実行中
python manage.py
ワーカーで出力します。
[2018-01-12 19:35:33,640: INFO/MainProcess] Received task: tasks.add[3f9b5255-60a2-4a08-96b6-38f5fbc31543]
[2018-01-12 19:35:33,640: INFO/MainProcess] Task tasks.add[3f9b5255-60a2-4a08-96b6-38f5fbc31543] succeeded in 0.0s: 8
関連
-
解決済みお客様のCPUは、このTensorFlowバイナリが使用するようにコンパイルされていない命令をサポートしています。AVX AVX2
-
python socket.error: [Errno 9] 不正なファイルディスクリプタに対する解決策
-
[Python] error could not broadcast input array from shape (26) into shape (26,1)
-
Pandasの属性エラーです。AttributeError: 'Series' オブジェクトに 'reshape' 属性がない Solution
-
ImportError: 名前のインポートができない imsave エラー
-
Python Djangoプロジェクトログクエリシステム
-
メール送信を自動化するPython - Blog内のメッセージのメールアドレスを自動で取得して送信
-
TypeError: 'encoding'はこの関数の無効なキーワード引数です。
-
tkinter モジュールを使った Python 倉庫番ゲーム
-
Pythonです。AttributeError: module 'numpy' has no attribute 'dtype' 問題が解決されました。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Abort trap: 6エラーに対するPythonの解決策
-
ImportError: scipyという名前のモジュールがない(解決済み)
-
python で word, excel, csv, json ファイルの読み書きをする。
-
python3 のモジュール "importlib._bootstrap" に "SourceFileLoader" という属性がない問題を解決する。
-
Python Next SyntaxError: print' の呼び出しに括弧がありません。print(" ") のことですか?
-
ImportError を解決します。pandas をインストールした後に 'pandas' という名前のモジュールがない。
-
移動平均のPython実装
-
[Pythonノート】spyderのClearコマンド
-
パイソン] Python パイソンミニゲーム - 欲張りスネークアドベンチャー
-
pygalマッピング "AttributeError: 'NoneType' オブジェクトには 'decode' という属性がありません"