0

Pylons サーバー (paster serve によって処理される) に投稿要求を送信していますが、それらを頻繁に送信すると、サーバーに到着しないものが多くあります。一度に 1 つずつでも問題ありませんが、数秒以内に数 (またはそれ以上) を発射すると、少数しか処理されません。投稿データなしで送信した場合、または get を使用して送信した場合は問題なく動作しますが、投稿フィールドに 1 文字のデータを入れるだけで大​​きな損失が発生します。

たとえば、200 を送信すると、2 が返されます。100 をもっとゆっくり送ると、10 が返ってきます。

Qtアプリケーション内でリクエストフォームを作成しています。これは問題なく動作します (データなし):

QString postFields = "" QNetworkRequest request(QUrl(" http://server.com/endpoint ")); QNetworkReply *reply = networkAccessManager->post(request, postFields.toAscii());

これにより、リクエストの一部のみが処理されます。

QString postFields = "" QNetworkRequest request(QUrl(" http://server.com/endpoint ")); QNetworkReply *reply = networkAccessManager->post(request, postFields.toAscii());

use_threadpoolやその他のオプション ( threadpool_workersthreadpool_max_requests = 300)をオンにして遊んでみましたが、これらの組み合わせによって結果がわずかに変わる可能性があります (200 で 10 の応答がベストケース)。

同様のリクエストを他の(パスターではない)サーバーに送信すると、応答は正常に返されるため、パスターサーブの構成の問題であるとほぼ確信しています。

ヘルプやアドバイスをいただければ幸いです。

ありがとう

フィリップ

4

2 に答える 2

1

返信ありがとうございます。

paster serve が HTTP 1.0 のみをサポートしているため、最初のリクエストに 100 コードで応答しなかったことを追跡しました。

Apache に切り替えて、すべてが機能するようになりました。

于 2010-03-31T11:50:42.867 に答える
0

これらのリクエストが失われた正確な場所を見つけるために、paster/pylons 側にログを追加できますか? QT アプリが正常に動作していることは確かですか? QNetworkRequest の同時接続数に制限がある可能性がありますか? AFAIR QTネットワーキングは、スレッドプールから割り当てられた接続に別のスレッドを使用します。QT 側でエラー処理を追加してみてください。

于 2010-03-30T16:14:49.603 に答える