PHP でスケジュールされたタスクを実装するための sleep 関数の使用例の共有、phpsleep_PHP チュートリアル
PHP の sleep 関数を使用して、スケジュールされたタスクの例 phpsleep を共有します
一部のプログラムでは、定期的に実行する必要がある特別な関数がいくつかあります。Linux に詳しい友人は、これは簡単ではないと言うでしょう。これは確かに実現可能ですが、計画されたタスクに書き込む前に、具体的な実行時間を事前に把握しておく必要があります。たとえば、午前 2 時、午前 7 時、午前 6 時半などです。
ただし、この時間を予測できない場合があり、実行時間はプログラムによって動的に生成されます。次に、動的に生成された時刻の後に特定のプログラム フラグメントを実行します。各実行の時刻は動的に生成され、スケジュールされたタスクは固定時刻を知る必要があるため、ここで Linux の crontab を使用してタスクをスケジュールすることはできません。スケジュールされたタスクは使用できないため、これを実現する唯一の方法はプログラム自体から行うことです。
PHP にはスリープ関数があります。これは、プログラムの実行がスリープ関数に遭遇すると、N 秒間一時停止し、その後実行を継続することを大まかに意味します。たとえば、sleep(10) は、プログラムが sleep(10) ステートメントに遭遇した後、10 秒間一時停止してから実行を継続することを意味します。関数括弧内のパラメータは、一時停止時間の値を秒単位で表す数値です。以下のコードをご覧ください
/**
*スリープ機能の使い方
*瓊台ブログ
*/
// 現在のプログラムのタイムスタンプを出力します
エコータイム(); // アウト:1338088780
エコー '
';
// 10 秒間一時停止します
睡眠(10);
// タイムスタンプを出力します
エコータイム(); // アウト:1338088790
上記プログラムの実行結果は
1338088780
1338088790
実行プロセスを分析してみましょう。最初のステップでは、現在のタイムスタンプ 1338088780 を出力し、10 秒間停止してからタイムスタンプを出力します。プログラムは 10 秒待ってからタイムスタンプを再度出力するため、最後のタイムスタンプは最初に出力されるタイムスタンプよりも 10 秒長くなければなりません。その結果、最後のタイムスタンプは 1338088790 になります。
上記の例では、sleep 関数は 1 回だけ使用しましたが、sleep() 関数はページ上で無制限に使用できます。次のコードを参照してください:
/**
*スリープ機能の使い方
*瓊台ブログ
*/
// 最初のタイムスタンプを出力します
エコータイム(); // 出力: 1338088780
エコー '
';
// 10 秒間一時停止します
睡眠(10);
// 2 番目のタイムスタンプを出力します
エコータイム(); // 出力: 1338088790
エコー '
';
// 20 秒間一時停止します
睡眠(20);
// 3 番目のタイムスタンプを出力します
エコータイム(); // 出力: 1338088810
上記プログラムの実行結果は
1338088790
1338088810
上記コードの実行プロセス:
まず、最初のタイムスタンプ 1338088780 を出力します
次に、10 秒間停止します
3 番目に、2 番目のタイムスタンプ 1338088790 を出力します。これは、最初のタイムスタンプに 10 秒を加えた合計です
4 番目に、20 秒間停止します
5 番目に、2 番目のタイムスタンプ 1338088790 に 20 秒を加えた合計である 3 番目のタイムスタンプ 1338088810 を出力します。
スリープはページに 2 回表示されます。1 回目は 10 秒、2 回目は 20 秒です。したがって、上記の例の実行には合計 30 秒かかります。 sleep() 関数がページ内に複数回出現する場合、前のコードは上書きされずに蓄積されます。
それでは、スリープと動的に生成されたタイムコードのスケジュールされた実行をどのように組み合わせるのでしょうか?次のコードを見てください:
/**
* スリープ関数は、期間を動的に生成するコードを定期的に実行します
*瓊台ブログ
*/
// 現在時刻
echo date('Y-m-d H:i:s'); // 出力:2012-05-27 14:58:00
エコー '
';
// 動的生成時間の範囲は、今日の午後 6 時から午後 0 時までです
$datetime = date('Y-m-d').' '.rand('18,23').':'.rand('0,59').':'.rand('0,59'); // 2012-05-27 19:20:00
// タイムスタンプを計算します
$a = strtotime($datetime);
// 時差を計算します
$reduce = $a-time();
// 寝て待ってください
睡眠($reduce);
//実行時間後に実行されるコードブロック
echo date('Y-m-d H:i:s'); // 出力:2012-05-27 19:20:00
上記のコード出力:
2012-05-27 19:20:00
分析: 現在時刻の出力を開始し、次にプログラム実行時刻 2012-05-27 19:20:00 をランダムに計算します。スリープは秒単位の値であるパラメーターを受け入れるため、生成された時刻は最初にタイムスタンプに変換されます。タイムスタンプから現在のタイムスタンプを減算して時間差を取得し、スリープして、ランダムに生成された時間に特定のステートメントを実行するプログラムのスケジュールされた実行効果を実現します。なお、秒単位の時間差を計算する必要があるため、秒差が計算できない場合はスリープ機能が使用できません。
最後に、一部の子供用シューズは、サンプルを実行中にプログラム実行エラーが発生し、タイムアウトを促すメッセージを表示する場合があります。この問題が発生してもパニックにならないでください。これは PHP のデフォルトのページ実行時間によって引き起こされます。PHP のデフォルトのページ実行時間は、一般的なプログラムには十分な時間です。ただし、同様のスケジュールされた実行関数を実行する場合は、ヘッダー ステートメントで実行時間を set_time_limit(0) に設定する必要があります。 0 は時間制限がないことを意味し、単位は秒です。最後に、全体的なコードを投稿します:
/**
* スリープ関数は、期間を動的に生成するコードを定期的に実行します
*瓊台ブログ
*/
// ページの実行時間を設定します。そうしないと、タイムアウト エラー メッセージが表示されます
set_time_limit(0);
// 現在時刻
echo date('Y-m-d H:i:s'); // 出力:2012-05-27 14:58:00
// 動的生成時間の範囲は、今日の午後 6 時から午後 0 時までです
$datetime = date('Y-m-d').' '.rand('18,23').':'.rand('0,59').':'.rand('0,59'); // 2012-05-27 19:20:00
// タイムスタンプを計算します
$a = strtotime($datetime);
// 時差を計算します
$reduce = $a-time();
// 寝て待ってください
睡眠($reduce);
//実行時間後に実行されるコードブロック
echo date('Y-m-d H:i:s'); // 出力:2012-05-27 19:20:00
PHPファイルを使用したい場合は、かろうじて使用できます
PHPにはsleep関数があります。具体的な使用方法は、時間を秒単位で指定するsleep(time)です
まず、PHPスクリプトを作成します
while( 1) {
//yourcode
sleep(3600*24);
}
?>
ここでの yourcode は、この目的を達成できますが、犠牲にする必要があります。 URL を介してこのスクリプトにアクセスすると、PHP ファイルが実行されるため、このリンクは中断できず、続行する必要があります。 !それ以外の場合は無効になります
PHP はリクエストごとに実行され、リクエストがあった場合にのみ実行されます。
最初の echo date("h:s:i") の前に echo str_pad(" ",256); を追加する必要があります。"\n";
IE はページを 256 バイト受信するまで待つ必要があるためです。が表示され始めましたが、最新バージョンの Firefox では表示する前に 1024 バイトを受信する必要があることが判明しました

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、
