PHP でスケジュールされたタスクを実装するためのいくつかの方法の比較
PHP でスケジュールされたタスクを実装するいくつかの方法
ここ数日、PHP を使用して Web ページを定期的にクロールするサーバー アプリケーションを作成する必要があり、オンラインで解決策を検索したところ、質問に対する OSchina の回答が非常に興味深いものであることがわかりました。
いくつかの解決策が提案されています。要約は次のとおりです。
1.単純、直接的、無謀なタイプ
ignore_user_abort();//关掉浏览器,PHP脚本也可以继续执行. set_time_limit(0);// 通过set_time_limit(0)可以让程序无限制的执行下去 $interval=60*30;// 每隔半小时运行 do{ //ToDo sleep($interval);// 等待5分钟 }while(true);
2. シンプルで制御可能
config.php
return 1;<!--?php return 1; ?-->
ignore_user_abort();//关掉浏览器,PHP脚本也可以继续执行. set_time_limit(0);// 通过set_time_limit(0)可以让程序无限制的执行下去 $interval=60*30;// 每隔半小时运行 do{ $run = include 'config.php'; if(!$run) die('process abort'); //ToDo sleep($interval);// 等待5分钟 }while(true);
config.php の return 0 を変更してプログラムを停止します。実行可能な方法は、config.php ファイルと特別なフォームを操作し、HTML ページを通じていくつかの変数を設定することです。
短所: システムリソースを消費し、長時間実行すると予期せぬ隠れた危険を引き起こす可能性があります。たとえば、メモリ管理の問題などです。
3. 簡易改良型
$time=15; $url="http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; /* function */ sleep($time); file_get_contents($url);
この方法では、php ファイルの各ループが独立して実行されるため、time_out 制限を回避できますが、プロセスを終了できるように、上記のように制御コードを追加するのが最善です。 4. cronTab タイプ
プログラムでは、popen を使用して、同時実行性を制御するために実行中のプロセスの数を決定します
cControlJobNum(1); while (true) { <your code> <动态sleep> } function cControlJobNum($job_limit) { $cmd = @popen("ps -ef | grep '{$_SERVER['SCRIPT_FILENAME']}' | grep -v grep | wc -l", 'r'); $num = @fread($cmd, 512); $num += 0; @pclose($cmd); if($num > $job_limit) { exit; } return true; }
6. vps を購入し、crontab を使用します

ホット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)

ホットトピック









crontab のスケジュールされたタスクが実行されない原因まとめ 更新日時: 2019年1月9日 09:34:57 作成者: Hope on the field. この記事では主に、crontab のスケジュールされたタスクが実行されない原因をいくつかまとめて紹介します。考えられるトリガーごとに解決策が示されており、この問題に遭遇した同僚にとって一定の参照と学習価値があります。必要な学生はエディターに従って一緒に学習できます。序文: 最近仕事でいくつかの問題に遭遇しました。crontab のスケジュール設定タスクが実行されませんでした後、インターネットで検索したところ、インターネットでは主に次の 5 つのインセンティブについて言及されていることがわかりました: 1. crond サービスが開始されていない Crontab は Linux カーネルの機能ではなく、cron に依存しています。

Systemd と Crontab を使用して Linux システムでタスクの並列実行を実装する方法 Linux システムでは、タスクの並列実行はシステムの効率とパフォーマンスを向上させる重要な手段の 1 つです。この記事では、Systemd ツールと Crontab ツールを使用して Linux システムでタスクの並列実行を実装する方法を紹介し、具体的なコード例を示します。 1. Systemd の概要 Systemd は、Linux システムの起動プロセスとサービス管理を管理するために使用されるツールです。設定経由

Linux アノテーション crontab ファイルと crontab 実行の落とし穴. 多くの crontab は、特定のタスクを定期的に実行するために Linux で書かれていることが判明しました. 現在、次の要件があります: 要件: 特定の crontab タスクにアノテーションを付けることです. 方法: crontab を次の場所に追加するだけですタスクの前に「#」を追加するだけです。例:54**sunecho「runat5after4everysunday」 コメント: #54**sunecho「runat5after4everysunday」 とても簡単です。ピット 1 に遭遇、最近の次の例を見てください

Linux で crontab エラー ログを表示する方法: 1. ファイル ディレクトリ "/var/log/cron" を表示します; 2. "tail -f /var/log/cron" コマンドを使用して、実際のファイルの末尾を表示しますtime; 3. 「vim /var /log/cron」コマンドを使用すると、高度なテキスト ビューアで表示できます。

Systemd と Crontab を使用して Linux システムでアプリケーションを自動的に再起動する方法 Linux システムでは、Systemd と Crontab は 2 つの非常に重要なツールです。 Systemd はシステムおよびサービス マネージャーであり、Crontab は指定された時間にタスクを自動化するツールです。この記事では、具体的な例を使用して、Systemd と Crontab を使用して Linux システムでアプリケーションを自動的に再起動する方法を紹介します。 「いいえ」があるとします。

Systemd と Crontab を使用して Linux システムでシステムの自動起動を実装する方法 はじめに: Linux システムでは、システムの再起動後に自動的に実行できるように、一般的に使用されるいくつかのサービスまたはスクリプトをシステムの自動起動に設定する必要があることがよくあります。この記事では、Systemd と Crontab という 2 つのツールを使用してシステムの自動起動を実現する方法と、具体的なコード例を紹介します。 1. Systemd の使用 Systemd は、Linux オペレーティング システムで一般的に使用されるシステムおよびサービスの管理です。

Systemd と Crontab を使用して Linux システムでスケジュールされたタスクの優先順位を設定する方法には、特定のコード サンプルが必要です。Linux システムでは、スケジュールされたバックアップ ファイル、定期的なログ クリーニング、等ただし、タスクごとに優先順位が異なる場合があります。一部のタスクは時間通りに実行するためにより高い優先順位が必要ですが、一部のタスクは後で実行できます。この記事では、Systemd と Crontab を使用してタイミングを設定する方法を紹介します。

LinuxCrontab エラー ログのトラブルシューティングのヒントは、Linux システムで共有されています。Crontab は、ユーザーが特定のタスクを定期的に実行するのに役立つ、非常に一般的に使用されるスケジュールされたタスク管理ツールです。ただし、Crontab の使用中にエラーが発生する場合があり、時間内に確認して解決する必要があります。この記事では、Crontab エラー ログのトラブルシューティングに関するいくつかのヒントと、特定のコード例を通じて問題を特定して解決する方法を紹介します。 Crontab ログの表示 まず、Crontab を表示できます。
