0

我正在向 Pylons 服务器(由 Paster serve 提供服务)发送发布请求,如果我以任何频率发送它们,很多都不会到达服务器。一次一个是可以的,但如果我在几秒钟内发射几个(或更多),只有一小部分得到处理。如果我发送没有发布数据,或者使用获取,它工作正常,但在发布字段中仅放置一个数据字符会导致大量损失。

比如发送200,2会回来。发送 100 更慢,10 会回来。

我正在 Qt 应用程序中制作请求表单。Tis 可以正常工作(无数据):

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

谢谢你的回复。

跟踪它是因为 pasteer serve 仅支持 HTTP 1.0,因此没有使用 100 代码响应初始请求。

切换到 Apache,现在一切正常!

于 2010-03-31T11:50:42.867 回答
0

您能否在 paste/pylons 端添加日志记录以查找这些请求丢失的确切位置?您确定 QT 应用程序工作正常,可能是 QNetworkRequest 中的并发连接数限制吗?AFAIR QT 网络使用单独的线程来分配从线程池中的连接。尝试在 QT 端添加错误处理。

于 2010-03-30T16:14:49.603 回答