【问题标题】:Optimising HTTP Requests/Browser Throttling Requests?优化 HTTP 请求/浏览器限制请求?
【发布时间】:2014-02-27 16:01:27
【问题描述】:

我目前有一个交易虚拟物品的应用程序,并且每秒至少向主机的服务器发出 40 个 CFHTTP 请求。

我遇到的问题是,我的 CFHTTP 调用需要 400 毫秒以上的时间才能返回响应,这意味着我的应用程序错过了它找到的 99% 的交易,因为那里有很多其他竞争应用程序得到更快的响应。

我一直在努力寻找这种情况的原因和/或解决方案,因此我在 CF 和 C# 中编写了一个脚本,该脚本使 10 个 http 请求对每个请求进行计时,从而产生以下响应时间:

在 CF 中使用以下浏览器:

  • IE9:384、444、302、570、535、317、510、349、357、467 - 平均 423.5 毫秒
  • Firefox 27.0.1:354、587、291、480、437、304、537、322、286、652 - 平均 425 毫秒
  • 铬:300、328、328、639、285、259、348、291、299、414 - 平均 349.7 毫秒

在 C# 控制台应用程序中:

597、43、96、52、44、305、67、91、54、270 - 平均 161.9 毫秒

正如您所见,在 C# 控制台应用程序中发出 HTTPWebRequest 时性能差异很大,这让我认为 CFHTTP 请求可能受到限制?或者可能与浏览器有关?

任何帮助将不胜感激!

【问题讨论】:

  • 没关系通过浏览器运行它;设置一个 CF 页面,该页面执行一些 cfhttp 请求并将其作为计划任务运行,不输出任何内容,并使用日志记录来记录时间。不应该与我希望的 C# 控制台有很大不同
  • 刚刚创建了一个调用测试的计划任务,时间是 289,311,408,513,5195,313,352,321,301,358 和之前差不多……

标签: browser coldfusion httprequest cfhttp


【解决方案1】:

我没有足够的评论,所以在这里问。 您是否尝试过使用 Java 类进行 http 调用?

    obj = CreateObject("java", "org.apache.commons.httpclient.HttpClient");
    get = CreateObject("java", "org.apache.commons.httpclient.methods.GetMethod");
    header = CreateObject("java", "org.apache.commons.httpclient.Header");

    obj.init();
    tmp = get.init("http://google.com");
    res = obj.executeMethod(tmp);
    return res.response;

【讨论】:

  • 不,没试过(因为我不知道如何使用 CF 使用 Java 类),但会试一试,看看我会怎么做......
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-02-23
  • 1970-01-01
  • 2012-07-15
  • 2016-06-15
  • 2019-08-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多