この質問のタイトルがひどいことを認めなければなりません...最良の説明を得ることができませんでした。例を挙げることができるかどうか見てみましょう。
一度に私のソフトウェアをサーバーにインストールした約 2700 人の顧客がいます。1500かそこらがまだそうです。基本的に私が行っているのは、ソフトウェアをアンインストールした人やソフトウェアに問題がある人を除外するための自動診断です。現在、私たちのソフトウェア用にウェブサイトをフェッチし、ヘッダー リターンを探している cURL があります。
返される 8 つの異なるステータスがあります。
緑 - すべてが動作します (通常、0.5 ~ 2 秒という非常に短い時間)
赤 - ソフトウェアが見つかりません (通常、最長で 5 ~ 15 秒)
青 - ソフトウェアが見つかりましたが、アクティブ化されていません (通常、3 ~ 9 秒)
黄 - サーバー IP の不一致 (通常、
オレンジ - サーバー IP の不一致とソフトウェア タイプの誤り (通常 5 - 10 秒)紫
- アクティベーション キーが正しくありません (通常 2 秒以内)
黒 - ドメインが 404 を返します - 存在しません (通常 1 秒以内)
UNK -接続に失敗しました (通常はロード バランサーが原因です -- 非常にまれです) (まだこれに対処したことはありません)
基本的には、cronJob がドメインと製品タイプを取得してプロセスを開始します。次に、ドメインを cURL し、上記のステータス カラーの循環を開始します。
これが発生している間、結果を返す ajax ページがあるので、ステータスを監視できます。主な問題は、残り時間が非常に変動しやすいため、適切な見積もりができないことです。現在の計算は次のとおりです。
# Number of accounts between NOW and when started
$completedAccounts = floor($parseData[2]*($parseData[1]/100));
# Number of seconds between NOW and when started
$completedTime = strtotime("now") - strtotime("$hour:$minute:$second");
# Avg number of seconds per account
$avgPerCompleted = $completedTime / $completedAccounts;
# Total number of remaining accounts to be scanned
$remainingAccounts = $parseData[2] - $completedAccounts;
# The total of seconds remaining for all of the remaining accounts
$remainingSeconds = $remainingAccounts * $avgPerCompleted;
$remainingTime = format_time($remainingSeconds, ":");
緑、赤、青などのすべてについてカウントを作成し、各色の平均時間を計算し、それを平均時間に使用することもできますが、それがより良い結果をもたらすとは思いません.
非常に多様な時代の違いがあるため、何か提案をいただければ幸いです。
ありがとう、ジェフ