1

マルチ アウトバウンド リクエスト - Curl

ここに問題があります。アウトバウンド要求を CURL する必要があるクライアントがいくつかあります。たとえば、現在 20 のクライアントがあり、それぞれに毎分約 100 ~ 1000 のリクエストを送信しているとします。私も CURL multi を使用していますが、一度に作成できるリクエストの数に制限があるようで、ルーチン全体が完了するまでの最長の CURL レスポンスにも依存します。

たとえば、次のクライアントがあります。

Client 1
url: http://www.exampleclient1.com/process/

Client 2
url: http://www.exampleclient2.com/process/

... 等々

ここでの主な問題は、すべてのクライアントに対してジョブを実行する単一のスクリプトがあることです。言う、

http://localhost/app/send/client1
> will send out the pending outbound queue to client 1's url 

http://localhost/app/send/client2 
> will send out the pending outbound queue to client 2's url

... 等々

私がそれらを分離した理由は、クライアント間に専用の接続が必要であり、それらのレイテンシーが互いに異なるためです。一部のクライアントは応答が速く、サーバーが高速ですが、一部のクライアントはサーバーが低速であるか、到達するのに多くのホップが必要です。

これが私の質問です。このプロセスを簡素化する手段はありますか? データベースにクライアントを追加するたびに、クライアントも追加する必要があるのは面倒だからです。

http://localhost/send/newclient1 
http://localhost/send/newclient2
.
.
.
http://localhost/send/newclientn

cronjobs のリストに。クライアントのリストが大きくなっても、アウトバウンド CURL 機能の全体的なパフォーマンスに影響を与えないように、代わりに単一のスクリプトに入れることは可能ですか?

ちなみに私はPHP、CURLを使っています。これに PHP 以外の別のテクノロジ、Linux キューイング マネージャなどを使用することを推奨するソリューションがある場合は、ぜひ提案してください。

ありがとう!

4

1 に答える 1

1

私はあなたが直面している同様の問題を抱えています、一般的な問題は次のとおりです:-リソースURLの異なる応答時間(あなたはそれらをクライアントと呼ぶかもしれません)-一度に1つまたは10を追加する新しいURLを追加する要求。

コモンズに加えて、私の他の観察:--さまざまなサービスプロバイダーからのURL、-さまざまなデータ形式で-そしてそれらはあなたが望むものに対してさまざまなタイプのリクエストを必要とします。

いくつかのPHP-cURLライブラリを確認しました。

データベースとクライアントの送信要求を管理するようになったので、少なくともMySQLやSQLiteなどのRDBMSをよく知っているはずです。他のオプションは、RDBMSと見なされます。

  • RDBMSで、{"clientNo"=>"URL"}のようにリクエストを含むテーブルを作成します
  • PHPmyAdminまたは任意のデータベース管理インターフェイスを使用して、クライアントのリストを追加できます。
  • スクリプト:foreachループ内でデータベースのエントリ全体を1つずつフェッチするスクリプトを作成します。CURLノードでプリフォームを作成し、複数のCUR1呼び出しのキューにハンドラーを追加します。
  • スクリプトをテストし、本番環境の場合はcronjobに追加します。
  • クライアントを追加する必要があるたびに、データベース管理インターフェイスを使用してクライアントをRDBMS(MySQL、SQLite)に追加するだけです。

注:アウトバウンド管理を行っている場合は、セキュリティの問題、プロキシを考慮する必要があります。新しいクライアントを送信するためのPHPおよびHTMLフォームを作成することもできます。

于 2013-01-28T11:17:54.777 に答える