Windows 上の Apache は PHP ファイルを数秒ごとに実行できますか? それを解決するにはどうすればよいですか?

WBOY
リリース: 2016-06-13 13:46:56
オリジナル
969 人が閲覧しました

Windows 上の Apache は PHP ファイルを数秒ごとに実行できますか?
非常にばかげた質問をさせてください。しかし、私は長い間考えてきましたが、良い解決策が思いつきませんでした。
背景は次のとおりです。データベース内のデータを定期的に操作し、結果を保存するには、PHP コードが必要です。このコードがユーザーが要求したときにのみ実行される場合、ユーザーの応答時間は非常に長くなり、ユーザー エクスペリエンスは非常に低下します。したがって、このコードを実行するための特別なプログラムが存在することを願っています。当初は Windows のスケジュールされたタスクを使用して解決しようと考えましたが、実行頻度が非常に高いため、スケジュールされたタスクの使用は明らかに適していません。
それで、誰かが私にアドバイスをくれることを願っています。簡単な例を教えていただければ幸いです。ありがとうございます。

-----解決策--------------------------------
スケジュールされたタスクを使用するか、PHP を使用して

PHP コード
 を実行することしかできないようです。
ignore_user_abort();//ブラウザを閉じると、PHP スクリプトは実行を続行できます。
set_time_limit(0); // set_time_limit(0) により、プログラムは無制限に実行できます。
$interval=60*30;// 30 分ごとに実行
する{
   // ここに実行したいコードがあります
   sleep($interval);//5 分待ちます
}while(true);
<br><font color="#e78608">------解決策----------------------</font><br>Linux には cron があり、非常に使いやすいです。 <br><br>Windows で mysql5.1 以降が利用可能な場合は、イベント スケジューラがありますが、まだ使用していませんので、ご自身で確認してください。<br>
<br><font color="#e78608">------解決策------</font><br>複数の方法: <br>1. スリープを使用します。 () 関数は、Linux contab のスケジュール実行と同様の機能を実装します。 <br><br>2. Linux システムはスケジュールされたタスクを crontab に直接追加します。
<br><font color="#e78608">------解決策---------</font><br>インクルードファイルを作成して同じ問題を解決できますこれにより、使用していないときにリソースが節約されるだけでなく、呼び出されたときにも実行されるので、Web ページを閉じた後も実行を続けることができます。何らかのアクションによってトリガーできる限り、問題はありません。負荷をかけてトリガーする方が良いです。
<br><font color="#e78608">------解決策------</font><br>js を使用して Web ページを定期的に更新します。内のデータベース。 Web ページが開いている限り、いつでも実行できます。必要なリソースも少なくて済みます
<br><font color="#e78608">------解決策---------</font><br>js を使用してページを更新します。 <br><br>ブラウザのホームページをこのページに設定します。 <br><br>Windows のスタートアップにブラウザを追加します。 <br><br><br><br>
<br><font color="#e78608">------解決策------------------</font><br>テスト スクリプトを作成します: <br><? php<br><br>ignore_user_abort();//ブラウザを閉じると、PHP スクリプトは実行を続行できます。<br>set_time_limit(0);//set_time_limit(0) を通じて、プログラムは制限なく実行できます<br>$interval=30;//一定時間ごとに実行<br>do{<br><br> //実行したいコードは次のとおりです<br> $msg=date("Y-m-d H:i:s" ) ." - 実行されました ~ n";<br> file_put_contents("log.log",$msg,FILE_APPEND);<br> <br> sleep($interval);//5 分間待ちます<br>}while( true );<br><br><br>コマンドラインで直接実行できます<br>c:php5php.exe test.php<br><br>これを追加して実行を開始するか、システムサービス、自動的に実行されます<div class="clear"></div>
ログイン後にコピー
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート