0 votes

Perte des requêtes 'post' envoyées au serveur de collage Pylons

J'envoie des requêtes postales à un serveur Pylons (servi par paster serve), et si je les envoie avec une certaine fréquence, beaucoup n'arrivent pas au serveur. Une à la fois, ça va, mais si j'en envoie plusieurs (ou plus) en quelques secondes, seul un petit nombre sera traité. Si j'envoie sans données postales, ou avec get, cela fonctionne bien, mais mettre un seul caractère de données dans les champs postaux provoque des pertes massives.

Par exemple, en envoyant 200, 2 reviendront. En envoyant 100 plus lentement, 10 reviendront.

Je crée le formulaire de demande à l'intérieur d'une application Qt. Cela fonctionne bien (pas de données) :

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

Et cela ne permettra de traiter qu'une fraction des demandes :

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

J'ai essayé d'allumer utiliser_threadpool et d'autres options ( Travailleurs du pool de threads , threadpool_max_requests \= 300), dont certaines combinaisons peuvent modifier légèrement les résultats (dans le meilleur des cas, 10 réponses sur 200).

Si j'envoie des requêtes similaires à d'autres serveurs (non pasteurs), les réponses reviennent correctes, donc je suis presque certain que c'est un problème de configuration du serveur pasteur.

Toute aide ou tout conseil sont les bienvenus.

Gracias

Philip

1voto

Merci pour votre réponse.

Le problème est dû au fait que paster serve ne supporte que HTTP 1.0, et ne répondait donc pas aux demandes initiales avec un code 100.

Je suis passé à Apache, tout fonctionne maintenant !

0voto

Yaroslav Points 2170

Pourriez-vous ajouter un système de journalisation du côté du pasteur et des pylônes pour savoir où exactement ces demandes se perdent ? Etes-vous sûr que l'application QT fonctionne correctement, peut-être y a-t-il une limite au nombre de connexions simultanées dans QNetworkRequest ? AFAIR QT networking utilise un thread séparé pour la connexion allouée à partir du pool de threads. Essayez d'ajouter la gestion des erreurs du côté de QT.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X