2

我有一个应用程序,用户可以在其中协作处理相册。我目前在客户端上使用轮询来每 30 秒检查一次新内容。在任何给定时间,可以有任意数量的人上传和查看专辑。

在服务器端,我缓存要返回的数据(因此对新内容的查询很便宜)。我假设从多个客户端每 30 秒轮询一次会导致更多实例保持活动状态(从而增加成本)。

在上述用例中使用通道 api 而不是轮询会不会过大?通道 api 是否也使实例保持活动状态?是否存在轮询比使用通道 api 更可取的用例?

4

1 回答 1

1

我正在使用频道,但我发现它们不是很好。如果一个频道因网络断开而超时,它会以某种方式破坏我浏览器上的历史记录。我在一个多星期前提交了一个错误,但尚未得到承认。一个多月前提交的另一个错误也未被确认 - 所以不要指望对频道问题的快速支持。

拥有频道很不错 - 如果某种状态发生变化,您可以在不到一秒的时间内通知用户,但它们并不可靠。有时断开连接事件不会发生,但通道只是停止工作。我当前的系统使用频道,但也每 5-10 秒轮询一次。由于不可靠,我不会使用通道来代替轮询,这只是一种提供更快响应的方法。

即使那样,您也必须弄清楚它是否会为您省钱。如果您希望用户在不访问服务器的情况下让您的应用程序打开 15 分钟,那么您可能会节省一些实例时间。但是,如果您的用户仍然在访问服务器,您的实例可能没有时间关闭。保持实例正常运行实际上也有助于减少冷启动。

于 2013-05-17T16:44:24.427 回答