我有一个应用程序,用户可以在相册上进行协作。我目前在客户端上使用轮询来每30秒检查一次新内容。在任何给定时间都可以有任意数量的人上传和查看相册。
在服务器端,我将数据缓存以返回(因此查询新内容的价格便宜)。我假设每隔30秒从多个客户端轮询将导致更多实例保持活动状态(从而增加成本)。
将通道api用于上述用例而不是轮询是否过度? 通道api是否也保持实例存活? 是否有任何使用情况,而不是使用频道api?
答案 0 :(得分:1)
我正在使用频道,但我发现它们并不好。如果某个频道因网络断开而超时,则会以某种方式搞砸我浏览器上的历史记录。我在一个星期前提出了一个错误,但尚未得到承认。还有一个月前提交的另一个错误也没有得到承认 - 所以不要指望快速支持渠道问题。
频道很不错 - 如果某种状态发生变化,您可以在不到一秒的时间内通知用户,但它们不可靠。有时断开事件不会发生,但通道会停止工作。我目前的系统使用频道,但每5-10秒轮询一次。由于不可靠性,我不会使用频道作为轮询的替代,只是提供更快响应的方法。
即便如此,你还是要弄清楚它是否能省钱。如果您希望用户在不点击服务器的情况下让您的应用程序打开15分钟,那么您可能会节省一些实例时间。但是,如果您的用户仍在使用服务器,那么您的实例可能没有时间关闭。实际保持实例有助于减少冷启动。