Потеря «почтовых» запросов, отправленных на сервер Pylons paster - PullRequest
0 голосов
/ 30 марта 2010

Я отправляю почтовые запросы на сервер Pylons (обслуживаемый службой paster), и если я отправляю их с какой-либо частотой, многие не приходят на сервер. Один за раз - это нормально, но если я сработаю несколько (или более) в течение нескольких секунд, то получу только небольшое количество. Если я отправляю данные без данных или с помощью get, это работает нормально, но размещение только одного символа данных в полях сообщений приводит к огромным потерям.

Например, отправка 200, 2 вернется. Посылка 100 медленнее, 10 вернется.

Я делаю форму запросов внутри приложения Qt. Тис будет работать нормально (нет данных):

QString postFields = "" QNetworkRequest запрос (QUrl ( "http://server.com/endpoint")); QNetworkReply * reply = networkAccessManager-> сообщение (запрос, postFields.toAscii ());

И это приведет к тому, что обрабатывается только часть запросов:

QString postFields = "" QNetworkRequest запрос (QUrl ( "http://server.com/endpoint")); QNetworkReply * reply = networkAccessManager-> сообщение (запрос, postFields.toAscii ());

Я поиграл с включением use_threadpool и другими параметрами ( threadpool_workers , threadpool_max_requests = 300), из которых некоторые комбинации могут изменить результаты немного (в лучшем случае 10 ответов из 200).

Если я отправляю аналогичные запросы на другие (не paster) серверы, ответы возвращаются нормально, поэтому я почти уверен, что проблема с настройкой paster serve.

Любая помощь или совет с благодарностью.

Спасибо

Philip

Ответы [ 2 ]

1 голос
/ 31 марта 2010

Спасибо за ответ.

Отслеживается тот факт, что служба paster поддерживает только HTTP 1.0, и поэтому не отвечала на первоначальные запросы с кодом 100.

Перешел на Apache, все работает сейчас!

0 голосов
/ 30 марта 2010

Не могли бы вы добавить регистрацию на стороне paster / pylons, чтобы найти, где именно теряются эти запросы? Вы уверены, что приложение QT работает правильно, возможно ли ограничение на количество одновременных соединений в QNetworkRequest? Сеть AFAIR QT использует отдельный поток для соединения, выделенного из пула потоков. Попробуйте добавить обработку ошибок на стороне QT.

...