6

ユーザーが Web アプリケーション (Linux/Apache/CGI::Application) から 1 回限りの長時間実行タスクをスケジュールできるようにするアプリケーションを作成しています。これを行うには、"at" コマンドへの Perl インターフェイスであるSchedule::Atモジュールを使用します。スケジュールされたタスクは繰り返されないため、「cron」は考慮していません。ただし、「at」には2つの問題があります。

  1. 私の CGI アプリケーションが suexec ラッパーの下で実行されている場合、スケジュールは正常に機能しますが、Apache プロセスの所有者によってスケジュールされている場合は機能しません。両方の環境 (suexec と no-suexec) でスケジュールを機能させるにはどうすればよいですか?
  2. 「at」または Schedule::At によってスケジュールされたプロセスには障害レポートがないようで、スケジュールされたタスクがサイレントに失敗することがあります。スケジュールされたタスク (スケジューラ自体ではない) が実行に失敗したという事実をログに記録する方法はありますか?

私は「at」に固定されておらず、他のより堅牢なスケジューリング方法があればそれを使用することにオープンです。

ご清聴ありがとうございました。

4

1 に答える 1

5

シュワルツについて良いことを聞いた. ただし、遅延はありません。at 経由でジョブを送信しますが、submit_job スクリプトが単純である限り、上記の問題は両方とも解決するはずです。

(警告として、私はGearmanしか使用していません。このための信頼できるジョブ キュー、「ファイア アンド フォーゲット」メカニズムが必要になると思います。そのため、submit_job をダムのままにしておくことができます。)

于 2009-06-03T02:30:35.333 に答える