PHP_PHP チュートリアルにおけるスケジュールされたタスクの実装原理
PHP マニュアルに従って、関連する知識を簡単に紹介します。
1. 接続処理:
PHP 内部では、システムは接続ステータスを維持し、そのステータスには 3 つの状況が考えられます:
0 - NORMAL (通常)
1 - ABORTED (異常終了)
2 - TIMEOUT (タイムアウト)
NORMAL 状態で PHP スクリプトが正常に実行される場合、接続は有効です。リモート クライアントが切断されると、ABORTED ステータス フラグがオンになります。リモート クライアント接続の中断は、通常、ユーザーが [STOP] ボタンをクリックしたことによって発生します。接続時間が PHP の制限時間を超えると、TIMEOUT ステータス フラグがオンになります。
クライアントが切断されたときにスクリプトを終了する必要があるかどうかを決定できます。スクリプトの出力を受け入れるリモート ブラウザがない場合でも、スクリプトを完全に実行すると便利な場合があります。デフォルトでは、リモート クライアント接続が失われたときにスクリプトが終了します。この処理は、php.ini のignore_user_abort によって、または Apache .conf 設定の対応する "php_valueignore_user_abort" およびignore_user_abort() 関数によって制御できます。 PHP がユーザーの中断を無視するように指示されていない場合、 register_shutdown_function() によってシャットダウントリガー関数が設定されていない限り、スクリプトは中断されます。このクローズ トリガー関数により、リモート ユーザーが STOP ボタンをクリックし、スクリプトがデータを再度出力しようとすると、PHP は接続が中断されたことを検出し、クローズ トリガー関数を呼び出します。
スクリプトは、組み込みのスクリプト タイマーによって中断される場合もあります。デフォルトのタイムアウト制限は 30 秒です。この値は、php.ini で max_execution_time を設定するか、Apache .conf 設定の対応する「php_value max_execution_time」パラメータまたは set_time_limit() 関数を設定することで変更できます。カウンタがタイムアウトすると、上記の接続中断状況と同様にスクリプトが終了し、事前に登録されたシャットダウン トリガー関数もこの時点で実行されます。シャットダウン トリガー関数では、connection_status() 関数を呼び出すことで、タイムアウトによってシャットダウン トリガー関数が呼び出されたかどうかを確認できます。タイムアウトによりシャットダウントリガー関数が呼び出された場合、関数は 2 を返します。
注意すべき点の 1 つは、ABORTED 状態と TIMEOUT 状態が同時に有効になる可能性があるということです。これは、PHP にユーザー終了アクションを無視するように指示する場合に可能です。 PHP はユーザーが切断されたことを認識しますが、スクリプトはまだ実行中です。実行時間制限に達すると、スクリプトは終了し、設定されたシャットダウン トリガー関数も実行されます。この時点で、関数 connection_status() が 3 を返すことがわかります。
2. 関連関数:
intignore_user_abort ( [bool settings] )
この関数は、クライアントの切断によってスクリプトが中止されるかどうかを設定し、前の設定を返し、引数なしで呼び出すことができます。現在の設定を変更し、現在の設定のみを返します。
int connection_status ( void )
特定のファイルを定期的に更新するために、 TRUE を返します。プログラムが必要です 自動的に実行するには、ignore_user_abort() と crontab の 2 つのメソッドをインターネットから見つけました。 set_time_limit(0) と sleep($interval) を使用したignore_user_abort() 関数は、プログラムの自動実行と更新を実現できます。例
コードをコピー
コードは次のとおりです:
上記のページを実行して閉じる限り、プログラムは実行を続けます。
Linux では、より簡単な方法があり、それが crontab コマンドです。
crontab コマンドの機能は、特定の時間間隔でいくつかのコマンドの実行をスケジュールすることです。
crontabの使い方: crontab [ -e | -l | -r ] ファイル名 -e: タスクの編集 -l: タスク情報の表示 -r: 実行予定タスクの情報の削除
crontab 形式:
* * * * * コマンド
コマンドタイムシェアリングの日、月、週を実行するには
crontab の例:
*/5 * * * * lynx http://www.jb51.net
5 分ごとに www.jb51.net にアクセスします
0 8 * * * lynx http://www.jb51.net
毎朝 8 時に www.jb51.net にアクセスしてください
0 10 6 * 1-5 lynx http://www.jb51.net
毎月 6 日そして、毎週月曜日から金曜日の午前 10 時に www.jb51.net にアクセスしてください
0 5 7 8 * lynx http://www.jb51.net
8 月 7 日の午前 5 時に www.jb51.net にアクセスしてください
上記のいくつかの特別な意味:
「*」は値の範囲内のすべての数値を表し、「/」はすべてを表し、「*/5」は 5 単位ごとを表し、「-」は特定の数値から特定の数値までを表し、「,」は複数の離散的な数値を区切ります。

ホット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 のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

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

CakePHP へのログインは非常に簡単な作業です。使用する関数は 1 つだけです。 cronjob などのバックグラウンド プロセスのエラー、例外、ユーザー アクティビティ、ユーザーが実行したアクションをログに記録できます。 CakePHP でのデータのログ記録は簡単です。 log()関数が提供されています

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

CakePHP はオープンソースの MVC フレームワークです。これにより、アプリケーションの開発、展開、保守がはるかに簡単になります。 CakePHP には、最も一般的なタスクの過負荷を軽減するためのライブラリが多数あります。
