ホームページ > バックエンド開発 > PHPチュートリアル > PHPスクリプトデーモン処理の原理と方法

PHPスクリプトデーモン処理の原理と方法

墨辰丷
リリース: 2023-03-26 20:06:02
オリジナル
1217 人が閲覧しました

この記事では、PHP スクリプト デーモンの原理と実装方法を主に紹介し、PHP スクリプト デーモンの実装アイデア、原理、形式、および具体的な実装方法を詳しく分析します。必要な方は参考にしてください。

1. While ループでは、現在操作するデータがない場合は、スリープすることができます。
2. crontab スクリプトは、実行時に、すでに実行されているかどうかを確認します。実行されないのでスキップします。

3。デーモン プロセスのメモリ オーバーフローを防ぐために、メモリ使用量を定期的に確認することをお勧めします。

次のコードをビジネス スクリプトに入力します:


<?php
set_time_limit(0);
//死循环
while(1) {
  $message = &#39;1111111&#39; . "\n";
  error_log($message);
  sleep(5);
}
ログイン後にコピー

注:

nohup タスク ビューとクローズ メソッド:

Close:

#/tmp/lock/test1.lock 为当前进程要锁定的文件,不同的进程配置不同的锁文件,该文件会自动创建
* * * * * flock -xn /tmp/lock/test1.lock -c &#39;nohup php index.php >> /php/test.log 2>&1 &&#39;
* * * * * flock -xn /tmp/mytest.lock -c &#39;php /home/fdipzone/php/test.php >> /home/fdipzone/php/test.log&#39;
ログイン後にコピー


表示:

if(memory_get_usage()>100*1024*1024){
  exit(&#39;内存溢出&#39;);//大于100M内存退出程序,防止内存泄漏被系统杀死导致任务终端
}
ログイン後にコピー

原則:

Linux flockファイルロックを使用してタスクロックを実装し、競合を解決します

形式:

//方法一:
ps -e | grep commend
kill -9 pid
//方法二:
fg %n  //n为jobs命令查看的进程号
ログイン後にコピー

オプション

-s、--共有: 取得1 つの共有ロック

-x、-exclusive: 排他的ロックを取得します

-u、--unlock: ロックを削除します。通常は不要です。ロックはスクリプトの実行後に自動的に破棄されます

-n、-nonblock。 : すぐにロックを取得できない場合は、待機せずに直接失敗します

-w, --timeout: ロックがすぐに取得できない場合は、指定された時間待機します -o, --close: コマンドを実行する前にファイル記述子を閉じます。コマンドが子プロセスを生成する場合にロックフリー制御を防ぐために使用されます-c, --command: シェルで単一のコマンドを実行します

-h, --help ヘルプを表示します

-V, --version: バージョンを表示します

php ファイルを実行します。ファイルロックは排他ロックを使用します。ロックされている場合、待機せずに失敗します。パラメータは -xn

* * * * * flock -xn /tmp/mytest.lock -c 'php /home/fdipzone/php/test.php >> /home/fdipzone/php/test.log '

このように、タスクが完了せず、次のタスクが/tmp/mytest.lockがロックされていると判断した場合、現在のタスクは終了し、次のサイクルで再度判断が行われます。

関連する推奨事項:


PHPの実装
スクリプト
非同期実行方法




php-fpmサービスの起動

スクリプト

詳細な手順

php

スクリプト

製品リストを定期的に更新する

以上がPHPスクリプトデーモン処理の原理と方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート