2009-06-12 16 views
0

私は毎日特定の時間に実行する必要があるPHPスクリプトを持っています。これを行うには、cronまたはWindowsタスクスケジューラが唯一の方法ですか?
これを別のPHPスクリプトから設定する方法はありますか?毎日特定の時間にPHPスクリプトを実行するためのオプションはありますか?

+3

これはまさにcronのためのもので、それを使用するのが理にかなっています。 – rojoca

答えて

5

タイミングがどれくらい正確である必要があるかによって異なります。私が見たことのある技術は、頻繁にアクセスされるスクリプト(サイトのホームページなど)を特定の時間が経過した後の最初のページの読み込み時に起動させるというものです。データベース)。

確かな精度が必要な場合は、cronまたはWindowsのスケジュールされたタスクが最適です。あなたのホストがそれらをサポートしていない場合は、より良いものを得る時です。

+1

私はまったく同じことを言ったでしょう。何もこれのためにcronを打つことはない。 +1 –

1

もちろん、Cronは* nixで何かをスケジュールする最良の方法です。

0

おそらく、cron(またはwindowsスケジュールされたタスク)を使いたいと思うかもしれません。

無限ループ(ループ内でsleepコマンドを使用して30秒程度)で連続して実行する別のPHPスクリプトを設定してから、希望の日時に実行するともう1つのスクリプトはシェルコマンド呼び出しを介して実行されます。可能であれば、cron/scheduledタスクではなくこのメソッドを使用する正当な理由が1つでもある場合、私は考えることはできません

0

メインスクリプトを実行する長時間実行するスクリプトを、定義済みの時間に書き込むことはできますが、それは基本的に "phphのcron rewrite"になります。

実際のcron自体を使用すると、より簡単でより堅牢なソリューションになります。アプリケーションをパッケージ化する場合は、アプリケーションを実行する単一のcron行を含む/etc/cron.dにファイルを置くことができます。

2

cronまたはScheduled Tasks以外にも、PHPスクリプトを常に実行することができます。プロセスは、時間に達するまで(ループ内で)スリープする必要があります。その後、プロセスは残りの関数/メソッドを実行できます。または、別のスクリプト(デーモンとして動作する)を設定して時間をチェックし、他のスクリプトを実行することもできます。

0

Windowsではcronジョブ(Linux/Unix環境)またはスケジュールされたタスクを使用する必要があります。 には、時間をチェックし、指定された間隔でスクリプトを実行する連続した別のスクリプトがありますが、OSによって提供されるメカニズムを使用すると、管理が容易で、再起動などが容易になります。

2

Webはプルメカニズムであり、実行するPHPスクリプトをトリガーする何らかのアクションが必要です。 cronはWindows上の* nixとタスクスケジューラのオプションです。あなたはタイマーを持っているが、必要な場合にのみタイマーを持つ独自のサービスを書くこともできます。これはアップデーターやジョブなどのWindowsサービスでは一般的です。

あなたはそれを行うことができる方法の1つは、必要な行動。または他のタスクを実行する1つのPHPスクリプト。 PHPなどのWebベースのタスクの問題はタイムアウトです。あなたの仕事が60-90秒未満であることを確認してください。そうでない場合は、PHPスクリプトではなく、Python、Perl、Ruby、またはbashスクリプトを使用して作業を行います。

cronはあなたにとって最適の選択肢のようです。スクリプトをwgetで呼び出す必要があります。例はここにあります:http://www.thesitewizard.com/general/set-cron-job.shtml

例えば、これは11でスクリプトを毎日実行します:

30 11 * * * /usr/bin/wget http://www.example.com/cron.php 
+2

PHPをコマンドラインで実行すると、タイムアウトの問題を回避できます。 – ceejayoz

+0

cronから実行してください。何かのように: 30 11 * * */usr/bin/php -f /var/www/cron.php –

1

これはあなたがへのcronへのアクセスを持っていないリモートサーバーにある場合は、上のセットアップのcron/Windowsのスケジューラをすることができますあなたのコンピュータは、実行するスクリプトを含むページにWebブラウザを開きます

0

Uniform Serverプロジェクトには、cronが受け入れられない環境でmimicking cronに関するいくつかの良い提案があります。それでも、cronがすべてオプションであれば、それを使用してください。

関連する問題