5分ごとにcronで実行されるPHPスクリプトがあります。
*/5 * * * * /var/www/html/processMail.php
スクリプト内には、15分ごとに実行したい関数があります。そのため、関数はスリープモードになりますが、スクリプトの残りの部分は5分ごとに処理されます。
このクレイジーなアイデアはどのように機能しますか?
5分ごとにcronで実行されるPHPスクリプトがあります。
*/5 * * * * /var/www/html/processMail.php
スクリプト内には、15分ごとに実行したい関数があります。そのため、関数はスリープモードになりますが、スクリプトの残りの部分は5分ごとに処理されます。
このクレイジーなアイデアはどのように機能しますか?
このクレイジーなアイデアはどのように機能しますか?
いいえ、そうではありません。15分ごとの関数は(15分待つことができたとしても)5分ごとに実行されるため、事実上、15分ごとの関数は5分ごとに実行されます。代わりに、15分ごとに実行される2番目のスクリプトを作成するか、パラメーターを追加します。
*/5 * * * * /var/www/html/processMail.php --mins=5
*/15 * * * * /var/www/html/processMail.php --mins=15
次に、この機能を使用して、PHP(および)のコマンドラインパラメーターを解析し、getopt
それに応じて処理します。PHPマニュアルのコマンドラインの使用法に関するセクションも参照してください。
イテレータをファイルまたはデータベースに保存し、実行するたびにインクリメントすることができます。この方法では、スクリプトの実行回数の3回に1回しか実行できません。
ただし、はるかに優れた解決策は、別のスクリプトを作成して15分ごとに実行することです。