【问题标题】:GAE Go and long polling?GAE Go 和长轮询?
【发布时间】:2012-04-26 08:26:41
【问题描述】:

在 Google App Engine 上的 Golang 中实现长轮询的有效方法是什么?我遇到了this code,但它是为非 GAE 应用程序制作的(使用通道和 goroutine,据我所知,这对于 GAE 来说并不是最好的)。

编辑:

我特别需要为不受我控制的应用程序实现长轮询(请参阅this 参考),因此无法使用Channel API 代替轮询。

【问题讨论】:

  • 你是在尝试长轮询,还是编写一个将被长轮询的应用程序?
  • 另外,如果您想在 App Engine 上编写比特币矿工,我很抱歉说这不是一个好的平台选择。 App Engine 主要用于实现网络应用和交互式网站,而不是批量计算。
  • @NickJohnson 我正在尝试编写一个将被长时间轮询的应用程序。我不打算写一个矿工,而是一个矿池。我已经具备基本功能并设法挖掘了一些测试网块 - blockexplorer.com/testnet/block/…
  • 在这种情况下,您唯一真正的选择是自己实现长轮询。但是,即使启用了多线程,这确实会占用您的实例时间。

标签: google-app-engine function web-applications go long-polling


【解决方案1】:

您想使用Channel API

【讨论】:

  • Channel API 更像是一般轮询的替代品,而我需要专门创建长轮询来与我无法控制的应用程序进行通信。
  • 那你就不走运了——GAE 的请求时间限制是 30 秒,这对于长轮询来说是相当有问题的。
  • @Amber 时间限制已经有一段时间没有 30 秒了。前端请求为 60 秒,任务队列任务为 10 分钟,后端无限制,传出 urlfetch 最长为 10 分钟。
  • 啊,好吧,我对当前的时间限制有点过时了。也就是说,60 秒仍然会造成同样的问题(长轮询会达到前端超时,因此其他时间无关紧要)。
【解决方案2】:

前端实例对 http 请求的请求期限为 60 秒。

您可以尝试使用Backends 实现长轮询,因为它们没有相同的限制(无限期)。

【讨论】:

    猜你喜欢
    • 2012-04-08
    • 2014-04-30
    • 1970-01-01
    • 2013-08-08
    • 2013-11-01
    • 1970-01-01
    • 2011-04-20
    • 2019-05-28
    • 2014-07-28
    相关资源
    最近更新 更多