【问题标题】:Losing 'post' requests sent to Pylons paster server丢失发送到 Pylons 贴纸服务器的“发布”请求
【发布时间】:2010-03-30 13:43:40
【问题描述】:

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

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

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

QString postFields = "" QNetworkRequest 请求(QUrl(“http://server.com/endpoint”)); QNetworkReply *回复 = networkAccessManager->发布(请求, postFields.toAscii());

这将导致只处理一小部分请求:

QString postFields = "" QNetworkRequest 请求(QUrl(“http://server.com/endpoint”)); QNetworkReply *回复 = networkAccessManager->发布(请求, postFields.toAscii());

我尝试过开启 use_threadpool 和其他选项(threadpool_workers, threadpool_max_requests = 300),其中一些组合可以稍微改变结果(最好的情况是 200 中的 10 个响应)。

如果我向其他(非粘贴)服务器发送类似的请求,回复正常,所以我几乎可以肯定这是粘贴服务配置问题。

非常感谢任何帮助或建议。

谢谢

菲利普

【问题讨论】:

    标签: python http qt pylons paster


    【解决方案1】:

    感谢您的回复。

    追踪到 pasteer serve 仅支持 HTTP 1.0,因此未使用 100 代码响应初始请求。

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 谢谢。似乎 Qt 表现良好,它是服务器,因为它缺乏 HTTP 1.1 支持。
      猜你喜欢
      • 1970-01-01
      • 2020-09-17
      • 1970-01-01
      • 1970-01-01
      • 2018-01-25
      • 1970-01-01
      • 2015-07-28
      • 1970-01-01
      • 2019-04-19
      相关资源
      最近更新 更多