問題タブ [curl-multi]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - curl_multi_exec で curl の並列ハンドラーを実行する
このコードでは、curl_multi_exec 関数を 2 回呼び出す必要があるのはなぜですか。
最初のループで、curl_multi_exec ハンドラを実行してサブ ハンドラを実行しています。CURLM_CALL_MULTI_PERFORM が $mrc と異なる場合、ループは終了します。
2 番目のループでは、curl ハンドラからの結果が検出され、最初のループが再び実行されます。
コードはPHP-Docサイトから抽出されました
php - 同じサーバーへのCURLマルチリクエストをシングルリクエストと同じくらい遅くする
ローリングカールと呼ばれる優れたマルチカールインターフェースを使用しています
http://code.google.com/p/rolling-curl/issues/detail?id=20
たとえば、約 3 秒で 20 のサイトからデータを取得します。問題は、同じサーバー上にある 200 ~ 300 のサイトで動作する必要があることです。これは、ループ内で単一の CURL リクエストを作成するのにかかる時間とほぼ同じで、約 10 分 47 秒です。だから、どうしようか、ちょっと悩んでいます。各サイトの HTTP コードを取得するだけです。file_get_contents、PHP FTP 関数を試しましたが、はるかに遅いです。
もう1つのことは、同じサーバー上にある12以上のドメインのリストを実行すると、リクエストがブロックされているように見えるため、どのサイトでもデータがまったく返されないことです. 12 未満のリストを実行する場合、この問題は発生しません。サイトのヘッダー データをフェッチするだけなので、それほど遅くはありません。
誰かが私を助けてくれたり、この問題を克服する方法についての指針とともになぜこれが起こっているのかについて詳細な説明をくれたら、私は信じられないほど感謝しています.
php - multi_curlがPHPでサポートされているかどうかを確認するにはどうすればよいですか?
cURLを使用してポストリクエストを実行するPHPコードがあります。これは、パフォーマンスのためにcurl_multi_*関数を使用します。
ホストされているPHPサーバーではすべて正常に動作します。
しかし、127.0.0.1のWAMPServerでは失敗します。単一のcURL要求は、WAMPServerで問題なく機能しcurl_multi_select()
ますが、スクリプトが最終的にタイムアウトするまで、-1を返すだけです。
コード...は、curl_multi_execのPHP.netのマニュアルページの例1です。http://www.php.net/manual/en/function.curl-multi-exec.phpこれ が無限ループの原因となるスニペットです。
Vistaのファイアウォールを無効にしてテストしました。
誰かがcurl_multi_*をWAMPServerで動作させる方法を知っていますか、またはPHPスクリプト内からcurl_multi_ *のサポートを検出して、フォールバックを作成できる方法はありますか?
php - multi_curl を使用して多数の PHP スクリプトを同時に呼び出すと、スクリプトの実行に遅延が生じるのはなぜですか?
約 40 個の個別の php スクリプト (同じサーバー上にある) を同時に呼び出すスクリプトがあります。個々の php スクリプトの開始に最大 5 秒の遅延があることに気付きました。サーバー負荷の CPU とメモリは問題ないようです。スワッピングはありません。トップ コマンドを参照してください。
通常、multi_curl のすべてのリクエストをバインドするループの最後のスクリプトで、最大の遅延が発生します。各スクリプトの開始時の遅延を測定しました。
この遅延を防ぐにはどうすればよいですか?
以下は私のhttpd.confです
php - マルチリクエストをさまざまなサービスに拡張する
私にはサービスがあり、ユーザーの要求ごとに40の外部サービス(API)に情報を取得するように依頼する必要があります。たとえば、あるユーザーが情報を検索していて、私のサービスは40の外部パートナーに情報の取得を依頼し、それを1つのDB(mysql)に集約して、結果をユーザーに表示しています。
現在、私はマルチカールソリューションを持っています。一度に10のパートナーリクエストがあり、誰かがリクエストを完了した場合、ソフトウェアは残りの30から別のパートナーをマルチカールのキューに追加します。完了し、結果はDBにあります。
このソリューションの問題は、多くのサーバーで拡張できないことです。たとえば、2〜3台のサーバーで分割して、一度に40のリクエストを実行し、最も遅いパートナーとして待機できるソリューションが必要です。結果を提供します;-)つまり、最も遅いパートナーが10秒かかった場合、40のパートナーすべての結果が10秒で得られます。マルチカールでは、一度に10〜12を超えるリクエストがあると、問題が発生します。
どのようなソリューションを提供できますか、リソースを可能な限り低くし、1台のサーバーで多くのプロセスを実行してスケーラブルにすることができます。私のソフトウェアはPHPで記述されています。つまり、フレームワークまたはAPIを使用してソリューションに適切に接続する必要があります。
私の問題と必要性をご理解いただければ幸いです。不明な点がございましたら、お問い合わせください。
php - curl_multi の CURLINFO_EFFECTIVE_URL
PHP の CURL MULTI を使用して、リソースの配列を並行してダウンロードしています。最後の有効な URL だけでなく、各リソースから最後の有効な URL を取得したいと考えています。
基本的に、私は探しています:
CURL MULTI の場合、次のようになります。
何か案は?
php - 多数のphpスクリプトを同時に実行する最も効率的な方法は何ですか?
現在、multi_curlを使用して、自分のサーバーでphpファイルを同時に実行しています。200以上のスクリプトを同時に実行する必要がある場合、サーバーが過負荷になるため、これはあまり効率的な方法ではないようです。必要なすべての変数をPOSTリクエストに入れることで、現在行っている各phpスクリプトに変数を送信する必要があります。
別のオプションがギアマンになることは知っていますが、それをインストールする必要があります。重いプログラムであるかどうかはわかりませんが、あまり多くのアプリケーションをインストールしないことを好みます。また、サーバーにとってより効率的かどうかもわかりません。
php内でlinuxシェルコマンドを使用するオプションもありますか?
私はphpとmysqlで標準構成されたLinuxサーバーを持っています。
だから私の質問は:
多くのphpスクリプトを同時に実行する最も効率的な方法は何でしょうか。これにより、各スクリプトに変数のセットを送信することもできます。
php - ターミナルからマルチスレッドのcurlスクリプトを実行するには?
複数のページを並行してフェッチするのを容易にする PHP 用のマルチ カール ライブラリを使用しました (基本的に使いやすい API)。
My Scenario
: API からユーザー データを取得して処理し、結果を保存します。データをフェッチする必要があるすべてのユーザーがキューに配置されます。この全体のフェッチ、処理、および結果の保存には、ほぼ 8 ~ 10 分かかります。そして、同期的に処理すると非常にコストがかかります。そこで、マルチスレッドに php curl ライブラリを使用しました。ブラウザで実行すると問題なく動作しますが、cron ジョブなので、コマンド ラインを使用して同じスクリプトを実行する必要があります。私がそうするとき; 効果がないでしょう。誰でも私を助けることができますか?前もって感謝します。
疑似コード:
// 参考URL http://codestips.com/php-multithreading-using-curl/
php - localhostphpエラーからのAWSS3バッチアップロード
ローカルホスト(xampp)からバケットにバッチ/バルクアップロードしようとしています。
約6つのアイテムで機能するようですが、エラーメッセージが表示されます
。cURLエラーはhttp://curl.haxx.se/libcurl/c/libcurl-errors.htmlから表示されます。S3
Failed sending network data.
と
これが私のphpです。ディレクトリから画像のリストを取得し、そのループからそれらのアイテムをにバッチアップロードしたいと思いますS3
。
更新:
変更を加えた後、congig.inc.php
エラーメッセージが表示されるようになりました:
Fatal error: Uncaught exception 'cURL_Multi_Exception' with message 'cURL resource: Resource id #149; cURL error: Failed connect to mybucket.s3.amazonaws.com:443; No error (cURL error code 7). See http://curl.haxx.se/libcurl/c/libcurl-errors.html for an explanation of error codes.' in D:\xampp\htdocs\sdk-1.5.14\lib\requestcore\requestcore.class.php on line 902
cURL_Multi_Exception: cURL resource: Resource id #149; cURL error: Failed connect to prayerbucket.s3.amazonaws.com:443; No error (cURL error code 7). See http://curl.haxx.se/libcurl/c/libcurl-errors.html for an explanation of error codes. in D:\xampp\htdocs\sdk-1.5.14\lib\requestcore\requestcore.class.php on line 902
php - PHP curl_multi_info_read curl_getinfo. 警告: 指定された引数は有効な cURL ハンドル リソースではありません
私のコードの一部:
このコードは警告Warning: curl_getinfo(): supplied argument is not a valid cURL handle resource
を表示し、その理由がわかりません。私がやっているときvar_dump($done['handle']);
は returnresource(7) of type (curl)
です。エラーを見つけるのを手伝ってください。