PHPを使用してwebappモニタリングWebアプリケーションを作成しようとしています。私は、ウェブサイトの状態が変わったとき(例えば、「アップ」していたサイトが「ダウン」した場合)、異なるWebサイトからヘッダーを収集し、MySQLデータベースを更新するためにカールを使用しています。phpとcronによるスケールカール
私はcurl_multi(Rolling Curl Xのクラスを使用しています)を並列に20個のサイト(最速の結果が得られるようです)を処理するために使用しています.CURLOPT_NOBODYはヘッダーのみを収集しています。できるだけ速くするためにスクリプトを合理化します。
正常に動作しており、約40サイトを処理できます。 2〜4秒。私の計画は、毎分cronを使ってスクリプトを実行することでした...だから、毎分約600のWebサイトを処理できるように見えます。これは分では問題ありませんが、長期的には十分ではありません。
これをどのようにスケールすることができますか?複数のcronを並行して実行することは可能ですか?これはボトルネッキングの問題につながりますか?
私の頭の上では、データベースを400のグループに分割し、これらのグループに対して別々のスクリプトを実行できると思っていました(例えば、ids1-400,401-800,801-1200などを実行できます別々のスクリプト)、データベースの破損の危険はありません。この方法で、各スクリプトは1分以内に完了します。
しかし、curl_multiを実行している1つのスクリプトが20個の要求を同時に並列処理できるため、このように動作しない可能性があります。それでは、これはうまくいくのでしょうか?
ありがとう - これは大きな助けです。私は "pthreads拡張子はWebサーバー環境では使用できません"という理由でpthreadsを使用できるとは思っていません。これはWebサーバー上にあります。 – Ryan