これと同様の問題があります: 新しいタスクを投稿すると、Celery Flower で「不明なタスク」エラーが発生する
ただし、以前の問題で言及された修正が既に行われている flower 0.7.3 を実行しています。花をロードすると、次のように表示されます。
[D 141025 19:22:44 状態:87] 登録済み: {'celery@myhost': ['crossbar.tasks.add.add', 'crossbar.tasks.ping.ping', 'crossbar.tasks.send_email.send_email', 'crossbar.tasks.send_message.send_message', 'クロスバー.タスク.send_sms.send_sms']} [D 141025 19:22:49 イベント:116] イベントを有効にする [D 141025 19:22:50 状態:153] ワーカーの検査を再開しています... [I 141025 19:22:50 tasks:99] '[1, 2]' と '{}' を使用してタスク 'crossbar.tasks.add.add' を呼び出す [W 141025 19:22:50 web:1404] 404 POST /api/task/async-apply/crossbar.tasks.add.add (127.0.0.1): 不明なタスク 'crossbar.tasks.add.add' [W 141025 19:22:50 ウェブ:1811] 404 POST /api/task/async-apply/crossbar.tasks.add.add (127.0.0.1) 1.11ms
しかし、POST が失敗したことがわかるように、次のように投稿しようとしています。
curl -X POST -d '{"args":[1,2]}' http://myhost:15629/api/task/async-apply/crossbar.tasks.add.add
これが私がCeleryを実行している方法です: celery -A myapp worker --loglevel=info
そして、次のように別のプロセスで花を実行しています: flower --conf=src/crossbar/flowerconfig.py
async-apply を send-task に置き換えると、200 が返されますが、セロリ コンソールでは次のエラーが表示されます。
[2014-10-26 17:03:06,640: CRITICAL/MainProcess] メッセージ本文をデコードできません: ContentDisallowed('pickle 型の信頼できないコンテンツの逆シリアル化を拒否しています (application/x-python-serialize)',) [type:' application/x-python-serialize' encoding:'binary' headers:{}] 本文: '\x80\x02}q\x01(U\x07expiresq\x02NU\x03utcq\x03\x88U\x04argsq\x04]q\x05(K\x01K\x02eU\x05chordq\x06NU\tcallbacksq\x07NU\x08errbacksq\x08NU\ x07tasksetq\tNU\x02idq\nU$f1e8fc87-d0ee-4fc6-86cb-8edded4a4f4cq\x0bU\x07retriesq\x0cK\x00U\x04taskq\rX\x16\x00\x00\x00crossbar.tasks.add.addq\x0eU\ttimelimitq\x0fNN\ x86q\x10U\x03etaq\x11NU\x06kwargsq\x12}q\x13u.' (229b) トレースバック (最新の呼び出しが最後): ファイル "/Users/psantan/Documents/git/crossbar-taskmgr_trunk/.tox/crossbar-taskmgr/lib/python2.6/site-packages/kombu/messaging.py"、586 行目、_receive_callback 内 decoded = None if on_m else message.decode() ファイル "/Users/psantan/Documents/git/crossbar-taskmgr_trunk/.tox/crossbar-taskmgr/lib/python2.6/site-packages/kombu/message.py"、142 行目、デコード self.content_encoding、accept=self.accept) ファイル "/Users/psantan/Documents/git/crossbar-taskmgr_trunk/.tox/crossbar-taskmgr/lib/python2.6/site-packages/kombu/serialization.py"、174 行目、読み込み中 self._for_untrusted_content(content_type, 'untrusted') を上げる ContentDisallowed: タイプ pickle (application/x-python-serialize) の信頼できないコンテンツのデシリアライズを拒否しています
OK、受け入れられるコンテンツのリストに「pickle」を追加すると、シリアル化エラーが発生しなくなりました。ただし、花はまだ私のタスクを認識していないため、async-apply は機能しません。私はセロリアプリを介して初期化しているのではなく、flowerconfig.pyを使用しているため、flower -Aアプリを機能させることができませんでした。それらを花で登録する適切な方法は何でしょうか?