私のdotcloudデプロイメントの1つでCeleryが失敗し、修正方法がわかりません。デプロイメントは、正常に機能しているように見える既存のdotcloudデプロイメント(ファイル差分を実行することで確認済み)とほぼ同じです。
djceleryログに表示されるエラー:
dotcloud @ hack-default-www-0:/var/log/supervisor $ more djcelery_error.log /home/dotcloud/env/lib/python2.6/site-packages/django/conf/__init__.py:75:廃止 cationWarning:ADMIN_MEDIA_PREFIX設定が削除されました。STATIC_URLiを使用します 代わりに。 「代わりにSTATIC_URLを使用してください。」、DeprecationWarning) /home/dotcloud/env/lib/python2.6/site-packages/djcelery/loaders.py:108:UserWarn ing:settings.DEBUGを使用するとメモリリークが発生します。この設定を製品で使用しないでください オークション環境! warnings.warn( "settings.DEBUGを使用すると、メモリリークが発生しますが、" [2012-06-04 03:27:32,139:警告/メインプロセス] -------------- celery @ hack-defaul t-www-0 v2.5.3 ---- **** ----- - - * *** * - [構成] --*-****---。ブローカー:amqp://root@hack-OQVADQ2K.dotcloud.com:29210// -**----------。ローダー:djcelery.loaders.DjangoLoader -**----------。ログファイル:[stderr] @INFO -**----------。並行性:2 -**----------。イベント:オン -*** ---*---。撃退する -******* ---- --- *****-----[キュー] --------------。セロリ:交換:セロリ(直接)バインディング:セロリ 【タスク】 。Experiments.tasks.pushMessageToIphone 。Experiments.tasks.sendTestMessage [2012-06-04 03:27:32,172:INFO / PoolWorker-1] self.run()を呼び出す子プロセス [2012-06-04 03:27:32,185:INFO / PoolWorker-2] self.run()を呼び出す子プロセス [2012-06-04 03:27:32,188:警告/メインプロセス] celery@hack-default-www-0にはstaがあります rted。 [2012-06-04 03:27:35,315:エラー/メインプロセス]コンシューマー:接続エラー:ソケット 閉まっている。2秒後に再試行しています... [2012-06-04 03:27:40,374:エラー/メインプロセス]コンシューマー:接続エラー:ソケット 閉まっている。4秒後に再試行しています... [2012-06-04 03:27:47,479:エラー/メインプロセス]コンシューマー:接続エラー:ソケット 閉まっている。6秒後に再試行しています... [2012-06-04 03:27:56,509:エラー/メインプロセス]コンシューマー:接続エラー:ソケット
興味深いことに、セロリカムのエラーログは少し異なるものを示しています。これが赤いニシンかどうかはわかりません。
/home/dotcloud/env/lib/python2.6/site-packages/django/conf/__init__.py:75:廃止 cationWarning:ADMIN_MEDIA_PREFIX設定が削除されました。STATIC_URLiを使用します 代わりに。 「代わりにSTATIC_URLを使用してください。」、DeprecationWarning) [2012-06-04 03:27:31,373:INFO / MainProcess]-> evcam:djceでスナップショットを撮る lery.snapshot.Camera(1.0秒ごと) トレースバック(最後の最後の呼び出し): ファイル"hack/ manage.py"、14行目 execute_manager(設定) ファイル"/home/dotcloud/env/lib/python2.6/site-packages/django/core/management/__ init__。py"、行459、execute_manager Utility.execute() ファイル"/home/dotcloud/env/lib/python2.6/site-packages/django/core/management/__ init__。py"、行382、実行中 self.fetch_command(subcommand).run_from_argv(self.argv) ファイル"/home/dotcloud/env/lib/python2.6/site-packages/djcelery/management/base。 py "、74行目、run_from_argv super(CeleryCommand、self).run_from_argv(argv)を返します ファイル"/home/dotcloud/env/lib/python2.6/site-packages/django/core/management/ba se.py "、196行目、run_from_argv self.execute(* args、** options .__ dict__) ファイル"/home/dotcloud/env/lib/python2.6/site-packages/djcelery/management/base。 py」、67行目、実行中 super(CeleryCommand、self).execute(* args、** options) ファイル"/home/dotcloud/env/lib/python2.6/site-packages/django/core/management/ba se.py "、232行目、実行中 output = self.handle(* args、** options) ファイル"/home/dotcloud/env/lib/python2.6/site-packages/djcelery/management/comma nds / celerycam.py "、26行目、ハンドル内 ev.run(* args、** options) ファイル"/home/dotcloud/env/lib/python2.6/site-packages/celery/bin/celeryev.py"、 38行目、実行中 デタッチ=デタッチ) ファイル"/home/dotcloud/env/lib/python2.6/site-packages/celery/bin/celeryev.py"、 run_evcamの70行目 リターンカム() ファイル"/home/dotcloud/env/lib/python2.6/site-packages/celery/events/snapshot.py "、116行目、evcam recv.capture(limit = None) ファイル"/home/dotcloud/env/lib/python2.6/site-packages/celery/events/__init__.py "、204行目、キャプチャ中 list(self.itercapture(limit = limit、timeout = timeout、wakeup = wakeup)) ファイル"/home/dotcloud/env/lib/python2.6/site-packages/celery/events/__init__.py "、193行目、itercapture self.consumer(wakeup = wakeup)をコンシューマーとして使用: __enter__のファイル"/usr/lib/python2.6/contextlib.py"、16行目 self.gen.next()を返す ファイル"/home/dotcloud/env/lib/python2.6/site-packages/celery/events/__init__.py "、185行目、消費者 queues = [self.queue]、no_ack = True) ファイル"/home/dotcloud/env/lib/python2.6/site-packages/kombu/messaging.py"、行 279、__ init__ self.revive(self.channel) ファイル"/home/dotcloud/env/lib/python2.6/site-packages/kombu/messaging.py"、行 286、復活 channel = channel.default_channel ファイル"/home/dotcloud/env/lib/python2.6/site-packages/kombu/connection.py"、lin e 581、default_channel self.connection ファイル"/home/dotcloud/env/lib/python2.6/site-packages/kombu/connection.py"、lin e 574、関連して self._connection = self._establish_connection() ファイル"/home/dotcloud/env/lib/python2.6/site-packages/kombu/connection.py"、lin e 533、_establish_connection conn = self.transport.establish_connection() ファイル"/home/dotcloud/env/lib/python2.6/site-packages/kombu/transport/amqplib.p y "、279行目、establish_connection connect_timeout = conninfo.connect_timeout) ファイル"/home/dotcloud/env/lib/python2.6/site-packages/kombu/transport/amqplib.p y "、89行目、__ init__ super(Connection、self).__ init __(* args、** kwargs) ファイル"/home/dotcloud/env/lib/python2.6/site-packages/amqplib/client_0_8/connec __init__の「tion.py」、144行目 (10、30)、#チューン ファイル"/home/dotcloud/env/lib/python2.6/site-packages/amqplib/client_0_8/abstra ct_channel.py "、95行目、待機中 self.channel_id、allowed_methods) ファイル"/home/dotcloud/env/lib/python2.6/site-packages/amqplib/client_0_8/connec _wait_methodの「tion.py」、202行目 self.method_reader.read_method() ファイル"/home/dotcloud/env/lib/python2.6/site-packages/amqplib/client_0_8/method _framing.py "、221行目、read_method mを上げる IOError:ソケットが閉じられました
私の監視対象ファイル:
[プログラム:djcelery] ディレクトリ=/home / dotcloud / current / コマンド=/home/dotcloud/env/bin/pythonhack / manage.py celeryd -E -l info -c 2 stderr_logfile = /var/log/supervisor/%(program_name)s_error.log stdout_logfile = /var/log/supervisor/%(program_name)s.log [プログラム:celerycam] ディレクトリ=/home / dotcloud / current / コマンド=/home/dotcloud/env/bin/pythonhack / manage.py celerycam stderr_logfile = /var/log/supervisor/%(program_name)s_error.log stdout_logfile = /var/log/supervisor/%(program_name)s.log
前述のように、正常に機能している別のdotcloudアカウントでほぼ同じコードをデプロイしています。
rabbitmqブローカーのステータス:
$ ./dotcloud info hack.broker エイリアス: --hackxxxx.dotcloud.com 構成: パスワード:xxxx rabbitmq_management:true ユーザー:root created_at:1338702527.075196 データセンター:Amazon-us-east-1c image_version:924a079b622a(最新) メモリ:49M / 512M(9%) ポート: -名前:ssh url:ssh://dotcloud@hackxxx.dotcloud.com:29209 -名前:amqp url:amqp:// root:xxxx@hackxxxx.dotcloud.com:29210 -名前:http url:http:// root:xxx@hack1-xxxx.dotcloud.com/ 状態:実行中 タイプ:rabbitmq