セロリは、ピットの開発を強化しました
接続Redisのセロリ
:Redisのブローカーを作るために使用する場合、Redisの接続はパスワードが必要です BROKER_URL = 「Redisのを://:[email protected]:6379/0 」、 xxxxxはパスワードであり、パスワードはコロンの前に追加する必要があります。
报错:セロリとValueError:解凍するのに十分ではない値は(0を持って、3を期待)
test.py
インポート時 からセロリの輸入セロリ ブローカー = ' :// localhostの6379 Redisの' バックエンド = ' 6379/0のRedis:// localhostの' セロリ =セロリ(' my_task '、ブローカー=ブローカー、バックエンド= バックエンド) celery.task @ DEF 追加(X、Y): time.sleep( 2.0 ) リターン X + Y
test1.py
試験インポート追加 結果を = add.delay(2,8 ) 、一方 1 : もしresult.ready(): プリント(result.get()) 休憩
誤差低減のシナリオ
1.労働者を実行します
セロリ-Aテストワーカー--loglevel =情報
出力:
(アナコンダ)C:\ Pycham \ Redisの>セロリ-Aテストワーカー--loglevel = 情報 --------------セロリの@ BOS3UA7Y740V4W9のv4.3.0 (ダイオウ) ---- *** * ----- --- * *** * - Windowsの-10-10.0.17763-SP0 2019年6月1日午後5時02分01秒 - * - **** --- - ** - --------- [設定] - ** ---------->アプリ:my_task:。0x2200a35b128 - ** ---------->輸送:Redisの://:** @ localhostを:6379 // - ** ---------->結果:Redisの://:** @ localhostの:6379/ 0 - *** --- * --->同時性:4。(preforkの) - ******* ---->タスクイベント:OFF(タスク監視するために-Eを有効で、この労働者を) --- ***** - ---- -------------- [キュー] 。>セロリ交換=セロリ(ダイレクト)キー= セロリ [タスク] 。test.add [ 2019年6月1日17:02:01524:INFO / MainProcess]のRedisに接続://:** @ localhostの:6379 // [ 2019年6月1日17:02:01556:INFO / MainProcess]付き合う:検索のための隣人 [:02:02620:2019年6月1日17 INFO / MainProcess]付き合う:すべて一人で [ 2019年6月1日17:02:02759:INFO / MainProcess]準備BOS3UA7Y740V4W9 @セロリを。 【 2019年6月1日17:02:03309:INFO / SpawnPoolWorker-2]子プロセス16140 self.runを呼び出す() [ 2019年6月1日17:02:03333:INFO / SpawnPoolWorker-4]子プロセス10908呼び出しself.run() [ 2019年6月1日17:02:03372:INFO / SpawnPoolWorker-3]子プロセス2400 を呼び出すself.run() [ 2019年6月1日17:02:03434:INFO / SpawnPoolWorker-1]子プロセス13848呼び出しself.run()
2.ファイル名を指定して実行test1.py
test1.py出力
トレースバック(最新の呼び出しの最後): ファイル" C:/Pycham/redis/test1.py "、7行目、で、<モジュール> プリント(result.getは()) ファイル" C:\ Pycham \アナコンダ\ libに\部位特異的パッケージ\セロリの\ result.py "行215、内のget self.maybe_throw(コールバック = コールバック) ファイル" C:\ Pycham \アナコンダ\ libに\のsite-packages \セロリの\ result.py "、行331、中maybe_throwの 自己.throw(値、self._to_remote_traceback(TB)) ファイル" C:\ Pycham \アナコンダ\ libに\のsite-packages \セロリの\ result.py "、ライン324、中スロー self.on_ready.throw( * argsを、** kwargsから) ファイル" :C \ Pycham \アナコンダ\ libに\のsite-packages \つるの\ promises.py "、行244、中スロー リレイズ(タイプ( EXC)、EXC、TB) ファイル" C:\ Pycham \アナコンダ\ libに\サイトパッケージは\つるの\ five.py "、行195、でリレイズの 昇給の値 とValueError:ありません(3期待に十分な値をアンパックし、0を得ました)
ワーカー出力:
[2019年6月1日17:03:59484:INFO / MainProcess]受信タスク:test.add [33ee3342-064e-47ef-8f8b- 95d65955fd89] [ 2019年6月1日17:03:59491:ERROR / MainProcess]タスクハンドラは、エラーが発生した:とValueError(' 解凍しないように十分な値(、3を期待0だ)' ) トレースバック(最新の呼び出しは、最後の): ファイル" C:\ pycham \アナコンダ\ libに\のsite-packages \ビリヤードの\ pool.py "、ライン358、でワークループ 結果 =(真、prepare_result(楽しい(* argsを、** kwargsから))) ファイル" C:\ pycham \アナコンダ\ libに\のsite-packages \セロリ\アプリの\のtrace.py "、行544 、で_fast_trace_task タスク、受け入れ、ホスト名 = _loc とValueError:ありません(、3を期待0を得た)解凍するのに十分な値
ソリューション:
インストールeventlet
eventletをインストールするPIP
今、私たちは再び戻ってきます
1.労働者を実行します
セロリ-Aテストワーカー-l情報-P eventlet
2.ファイル名を指定して実行test1.py
10
このタイム労働者の出力において
(アナコンダ)C:\ Pycham \ Redisの>セロリ-Aテストワーカー-l情報- Pのeventlet --------------セロリの@ BOS3UA7Y740V4W9のv4.3.0 (ダイオウ) ---- ** ** ----- --- * *** * - Windowsの-10-10.0.17763-SP0 2019年6月1日17時08分45秒 - * - **** --- - ** ---------- [設定] - ** ---------->アプリ:my_task:。0x16e16d0c0f0 - ** ---------->輸送。: Redisの://:** @ localhostの:6379 // 。 - ** ---------->結果:Redisの://:** @ localhostの:6379/ 0 - *** --- * --->同時性:4。(eventlet) - ******* ---->タスクイベント:OFF(タスクを監視するために-Eを有効にこの 労働者) --- ***** ----- --------------[キュー] - *** --- * --->並行性:4。(eventlet) - ******* ---->タスクイベント:OFF(タスク監視する-Eを有効にこれを労働者) --- ***** ----- -------------- [キュー] 。>セロリ交換=セロリ(ダイレクト)キー= セロリ [タスク] 。test.add - ******* ---->タスクイベント:OFF(タスク監視するために-Eを可能にします。で、この労働者を) --- ***** ----- ---- ---------- [キュー] 。>セロリ交換=セロリ(ダイレクト)キー= セロリ [タスク] 。test.add [2019年6月1日17:08:45387:INFO / MainProcess]のRedisに接続://:** @ localhostの:6379 // [ 2019年6月1日17:08:45401:INFO / MainProcess]付き合う:検索のために隣人 [ 2019年6月1日17:08:46434:INFO / MainProcess]付き合う:すべて一人で [ 2019年6月1日17:08:46452:INFO / MainProcess] pidbox:Redisの接続://:** @ localhostと:6 379 // 。 [ 2019年6月1日17:08:46458:INFO / MainProcess] BOS3UA7Y740V4W9 @セロリ準備。 [ 2019年6月1日17:09:31021:INFO / MainProcess]受信タスク:test.add [82a08465-b8d5-4371-8 EDD - 1f5b3c922102] [2019年6月1日17:09:33034:INFO / MainProcess]タスクtest.add [82a08465-b8d5-4371-8edd- 1f5b3c 922102]は成功で 2.0S:10