1

JSON URLからライブスコアを解析するPHPスクリプトがあり、一部のスコアが変更されているかどうかを確認し、別のphpスクリプトを呼び出して通知をIOSデバイスにプッシュします。

私の質問は、最初のスクリプトを 20 秒ごとに実行する方法です。

4

4 に答える 4

3

使用しているホスト OS によって異なります。Linux/Unix などの場合。タスクのスケジューリングに推奨されるツールはcronです。Windows や Mac などには、他の組み込みスケジューラがあります。

cron を使用して、毎分実行するタスクをスケジュールするには、次のようになります。

* * * * * /path/to/command

ただし、粒度は分までしかないようです。したがって、より詳細なタスク スケジューラがなければ、20 秒の遅延を内部で処理する必要がある場合があります。

1 つのアイデアは、コマンドを実行し、20 秒間スリープし、コマンドを再度実行し、20 秒間スリープし、コマンドを再度実行するスクリプトでタスクをラップすることです。次に、cron ジョブがそのラッピング スクリプトを呼び出します。私のバッシュは少し錆びていますが、アイデアは次のようになります。

/path/to/command
sleep 20
/path/to/command
sleep 20
/path/to/command
于 2013-01-08T14:53:34.830 に答える
2
$total_time = 0;
$start_time = microtime(true);
while($total_time < 60)//run while less than a minute
  {
    //DoSomething;
    echo $total_time."\n";
    sleep(20);//wait amount in seconds
  $total_time =  microtime(true) - $start_time ;
  } 

これを cronjob に追加して、毎分実行します。

于 2014-01-01T20:23:44.517 に答える
0

多分あなたは睡眠を試すことができます

while(1) {
    exec('php path/to/script.php');
    sleep(20);
}
于 2013-01-08T14:55:25.147 に答える
0

一般的に、acronjobはこの種のタスクに最適です。ここでこれを見てください:http
://www.thegeekstuff.com/2011/07/php-cron-job/ それが当てはまらない場合は、PHPCLI用に何かをスクリプト化できるかもしれませんhttp://php.net/無制限のランタイムを可能にするmanual/en/features.commandline.php 。そこにsleep()を含むwhile(true)ループを配置し、次のようなphpコマンドで実行するだけです。> php yourscript.php

于 2013-01-08T14:55:39.020 に答える