我正在向Pylons服务器发送帖子请求(由paster服务提供),如果我以任何频率发送它们,许多人都不会到达服务器。一次一个是好的,但是如果我在几秒钟内关闭一些(或更多),只需要处理一小部分。如果我发送没有发布数据,或者使用get,它可以正常工作,但在post字段中只放置一个数据字符会造成巨大损失。
例如,发送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),其中一些组合可以稍微改变结果(最好的情况是在200中的10个回复)。
如果我向其他(非贴纸)服务器发送类似的请求,回复就会回来,所以我几乎可以肯定它的服务配置问题。
非常感谢任何帮助或建议。
由于
菲利普
答案 0 :(得分:1)
感谢您的回复。
跟踪它是因为paster服务仅支持HTTP 1.0,因此没有响应100个代码的初始请求。
切换到Apache,现在都在工作!
答案 1 :(得分:0)
您可以在贴纸/挂架上添加日志记录,以找到丢失这些请求的确切位置吗?您确定QT应用程序是否正常工作,是否可以限制QNetworkRequest中的并发连接数? AFAIR QT网络使用单独的线程进行从线程池分配的连接。尝试在QT端添加错误处理。