目次
PHP の sleep 関数を使用して、スケジュールされたタスクの例 phpsleep を共有します
PHP でスクリプトのスケジュールされた実行を実装するにはどうすればよいですか?
PHPのsleep()関数の問題
ホームページ バックエンド開発 PHPチュートリアル PHP でスケジュールされたタスクを実装するための sleep 関数の使用例の共有、phpsleep_PHP チュートリアル

PHP でスケジュールされたタスクを実装するための sleep 関数の使用例の共有、phpsleep_PHP チュートリアル

Jul 13, 2016 am 10:20 AM
php sleep スケジュールされたタスク

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

上記プログラムの実行結果は
コードをコピーします コードは次のとおりです:
1338088780
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 14:58: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ファイルを使用したい場合は、かろうじて使用できます
PHPにはsleep関数があります。具体的な使用方法は、時間を秒単位で指定するsleep(time)です
まず、PHPスクリプトを作成します
while( 1) {
//yourcode
sleep(3600*24);
}
?>
ここでの yourcode は、この目的を達成できますが、犠牲にする必要があります。 URL を介してこのスクリプトにアクセスすると、PHP ファイルが実行されるため、このリンクは中断できず、続行する必要があります。 !それ以外の場合は無効になります

PHP はリクエストごとに実行され、リクエストがあった場合にのみ実行されます。

PHPのsleep()関数の問題

最初の echo date("h:s:i") の前に echo str_pad(" ",256); を追加する必要があります。"\n";
IE はページを 256 バイト受信するまで待つ必要があるためです。が表示され始めましたが、最新バージョンの Firefox では表示する前に 1024 バイトを受信する必要があることが判明しました

www.bkjia.com本当http://www.bkjia.com/PHPjc/867248.html技術記事 PHP のスリープ関数を使用したスケジュールされたタスクの例を共有する phpsleep 一部のプログラムでは、スケジュールされた実行が必要な特殊な関数がいくつかありますが、Linux に詳しい友人は間違いなくこれは違うと言うでしょう。
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

CakePHP プロジェクトの構成 CakePHP プロジェクトの構成 Sep 10, 2024 pm 05:25 PM

この章では、CakePHP の環境変数、一般設定、データベース設定、電子メール設定について理解します。

Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Dec 24, 2024 pm 04:42 PM

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

CakePHP の日付と時刻 CakePHP の日付と時刻 Sep 10, 2024 pm 05:27 PM

Cakephp4 で日付と時刻を操作するには、利用可能な FrozenTime クラスを利用します。

CakePHP ファイルのアップロード CakePHP ファイルのアップロード Sep 10, 2024 pm 05:27 PM

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

CakePHP ルーティング CakePHP ルーティング Sep 10, 2024 pm 05:25 PM

この章では、ルーティングに関連する次のトピックを学習します。

CakePHP について話し合う CakePHP について話し合う Sep 10, 2024 pm 05:28 PM

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

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 Dec 20, 2024 am 11:31 AM

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

CakePHP バリデータの作成 CakePHP バリデータの作成 Sep 10, 2024 pm 05:26 PM

Validator は、コントローラーに次の 2 行を追加することで作成できます。

See all articles