5

現在、システムで cron ジョブを設定および編集するためのインターフェースとして、優れたスケジューラー システムを構築しようとしています。私のシステムは、Linux サーバー上で Zend フレームワーク 1.11.11 を使用して構築されています。

あなたの提案が欲しい2つの主な問題があります。

問題 1: アプリケーション自体のセットアップ

cron ジョブを実行するには 2 つの方法があります。

  1. 最初の方法は、フォルダーscriptsを作成し、その中に必要なリソースのみを読み込む共通のブートストラップ ファイルを作成することです。次に、タスクごとに個別のスクリプトを作成し、各スクリプトにブートストラップ ファイルを含めます。最後に、これらのスクリプトごとに crontab ファイルに cron タスクを追加します。タスクは***** php /path/to/scripts/folder/cronScript_1.php.

  2. 次に、cron ジョブを通常のリクエストのように扱います (特別なブートストラップはありません)。これらのスクリプトごとに crontab ファイルに cron タスクを追加すると、タスクは次のようになります***** curl http://www.mydomain.com/module/controller/action

問題 2: アプリケーションへのインターフェース

cron ジョブを追加するには、次の 2 つの方法があります。

  1. タスクごとに、crontab ファイルにエントリがあります。新しいタスクを追加したいときは、cPanel またはその他の方法で crontab を編集する必要があります (利用できない場合があります)。

  2. タスクをデータベースに保存し、データベースと対話するための UI を提供します (いくつかのタスクと構成を追加するためのグリッド)。その後、毎分実行される crontab ファイルに 1 つの cron ジョブのみを書き込みます。このジョブは、データベースからすべてのジョブを選択し、今すぐ実行する必要があるジョブがあるかどうかを確認します (タスクの時間が保存され、サーバーの現在の時間と比較されます)。


各部分にどの方法を実装するのが良いと思いますか? これに対して、一般的に優れた既製のソリューションはありますか??

ノート

既製のソリューションを探しているQuartzに出くわしました。これは私が探しているものですか、それともまったく違うものですか?

ありがとう。

4

2 に答える 2

0

問題 2: アプリケーションへのインターフェース1 と 2 の両方の方法を使用しました。2 番目の方法を強くお勧めします。データベース テーブルの作成と UI の構築には、事前にかなり多くの作業が必要です。ただし、長期的には、実行する新しいジョブの追加がはるかに簡単になります。私は現在の会社の UI を構築しましたが、非常に使いやすいので、非技術者 (会計士、倉庫監督者) が入って仕事を生み出すことができます。

root としてサーバーにログオンし、crontab を編集し、パターンを記憶して保存するよりもはるかに簡単です。さらに、あなたは、誰もが crontab に何かを追加したいときにいつでもやってくる「The crontab ガイ」として知られることはありません。

アプリケーション自体のセットアップに関しては、cron で 1 つのスクリプトを呼び出し、そのスクリプトで残りを実行します。そうすれば、必要な cron エントリは 1 つだけです。ジョブの実行に時間がかかる場合は、他のインスタンスが実行されていない場合にのみスクリプトの実行が開始されるようにする必要があることに注意してください。そうしないと、同じジョブが 2 回実行される可能性があります。

于 2012-05-22T15:52:20.990 に答える