2008-09-25 16 views
2

私は実行にかなりの時間がかかるbackroundrbスケジュールされたタスクがあります。しかし、プロセスはわずか2.5分で終了するようです。Backgroundrbスケジュールされたタスクの終了

マイbackground.ymlファイル:

:schedules: 
    :named_worker: 
    :task_name: 
     :trigger_args: 0 0 12 * * * * 
     :data: input_data 

プロセスが実行されたとき、私は、サーバー上のゼロ活性を有しています。 (私は、プロセスが突然停止するまでログファイルを見ているサーバー上の唯一のものです)。

アイデアはありますか?

+0

あなたはもっと手がかりを与えなければなりません。 – liangzan

答えて

3

ここでは、問題の最下部に到達するための情報はあまりありません。 backgroundrbはバックグラウンドで動作するため、監視/デバッグするのが非常に困難です。ここで

は、私が使用するいくつかのアイデアです:

  1. は、労働者のコード自体をテストし、そこに何の問題
  2. がそうコードで複数のポイントで「プット」文を置くがないことを確認するためにユニットテストを書きますあなたは少なくともワーカーが動いている間にいくつかの反応を見ることができます。
  3. begin..rescue..endブロックにワーカー全体をラップすると、発生している可能性のあるエラーをキャッチしてプロセスを短くすることができます。
+0

問題のコードをコンソールで試すこともできます(バックグラウンドで実行されるのを待つのではなく意図的に実行する)ことで、状況を監視することができます。 –

0

ありがとうアンドリュー。これらのデバッグのヒントは役に立ちました。特に、begin..rescue..endブロック。

それでもデバッグするのは苦痛でした。最終的に、2.5分後にはBackgroundRBが短くカットされていませんでした。正しく接続されていなかったネットワーク接続がありました。それが見つかって閉じられると、すべてがうまくいく。

関連する問題