3

プログラムでcronジョブを設定するにはどうすればよいですか?

プロジェクトのインストーラーを作成しました。インストール時に、PHPを使用してプログラムでcronジョブを設定する必要があります。

プロジェクトはLINUX/WINDOWSで実行できることに注意してください。

どうすればそれを達成できますか?または、CRONJOBよりも優れたオプションはありますか。

私はCodeigniterを使用しています(ネイティブのphpベースのソリューションはいつでも歓迎ですが、CIを介したものであれば非常に役立ちます)

cronジョブには次のものが含まれます

  1. 特定のテーブルを確認し、無効なデータを削除します
  2. mailServerからDBに値を挿入します
  3. 一部のファイルの可用性を確認しています。

ありがとう。

4

3 に答える 3

8

これは、PHPからCronジョブを管理するための優れた記事です。

http://net.tutsplus.com/tutorials/php/managing-cron-jobs-with-php-2/

この例には、完全なソースコードを使用してインターフェイスから管理できるPHPからCronジョブを作成する方法の完全な説明が含まれています。

于 2012-11-24T05:09:44.337 に答える
2

Cron は、Linux 用のジョブ スケジューラです。Windows では動作しません (Cygwin や etecetera に夢中にならなければ)。システム全体、さまざまな未知のシステム、およびすべて PHP (そのままではスケジュールできない) でサポートする必要がある場合は、次の 3 つの使用済みソリューションのいずれかに頼ることができます。

地上管制からの呼び出し
(リソース、具体的な時間、最も洗練されたソリューションで最高)

  1. 独自のボックスで cron を実行し、他のマシンを ssh してコマンドを実行する
  2. 独自のボックスでcronを実行し、「秘密のURL」にアクセスしてコマンドを実行します
  3. SetCronJobなどの外部サービスに「秘密の URL」を呼び出してもらいます

ランダム ジョブ ランナー
(実装が最も簡単で、リソースが少ない)

サイトでのユーザーの行動に直接影響を与えず、時間に左右されない (単に実行する必要がある) 何かを行う必要がある場合は、統計的な確率で実行することに頼ることができます。

// this will run on average once every 100 page views
if(rand(1, 100)==1) runJobQueue();

最悪のシナリオ
(リソースの負担が大きい)

ユーザーに直接影響を与えるため、ジョブを頻繁に実行する必要があり、タイム スケジュールを満たす必要がある場合は、クエリを保存し、最後の実行タイムスタンプでデータベースを更新し、ジョブを再実行する必要があるかどうかを確認し続けることができます。走る

// if has passed 1 hour since last update... re-update it
$result = mysql_query("SELECT `timestamp` FROM job_times WHERE whatever...")
if(mysql_result($result, 2) >= ( now() - 3600)) {
    runJobQueue()
于 2012-11-24T06:09:21.560 に答える
0

cronジョブはLinuxで使用できますが、Windowsでの代替はスケジュールタスクです。 http://support.microsoft.com/kb/308569

于 2012-11-28T10:28:35.663 に答える