2

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

私の background.yml ファイル:

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

プロセスの実行中、サーバー上でアクティビティがありません。(つまり、プロセスが突然停止するまで、サーバー上でログ ファイルの処理を監視しているのは私だけです。)

何か案は?

4

2 に答える 2

3

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

これが私が使ういくつかのアイデアです:

  1. 単体テストを作成してワーカーコード自体をテストし、そこに問題がないことを確認します
  2. コード内の複数のポイントに「puts」ステートメントを配置して、ワーカーの実行中に少なくともいくつかの応答を確認できるようにします。
  3. ワーカー全体をbegin..rescue..endブロックでラップして、発生している可能性のあるエラーをキャッチし、プロセスを短縮できるようにします。
于 2008-09-25T06:51:51.913 に答える
0

アンドリューに感謝します。これらのデバッグのヒントが役立ちました。特にbegin..rescue..endブロック。

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

于 2008-09-25T22:14:28.013 に答える