我与视频流提供商集成。流程如下:用户请求一个流url,接下来我们代表用户,从流提供者请求它并返回给用户。接下来,我们应该将流id (会话)每10秒延长一次。为了最大限度地减少与客户端的交互,并且由于网络速度较慢,我们希望代表用户进行此会话延长。假设用户每2-5分钟触发一次请求,同时服务器每10秒触发一次会话延长请求。
问题在于这种服务的可能设计。除了定期迭代所有可用的会话密钥并调用延长服务之外,我还没有找到更好的解决方案。但这种方法有缺点,当用户数量非常大时,它可能会减慢处理速度。此外,使用这种方法很难进行扩展。
也许你对如何克服这个问题有想法?或者请提出一个更好的解决方案
发布于 2020-06-22 22:12:11
我会将keep alive编写为一段独立的代码,它将调用keep alive every x数字,持续y秒,然后结束自身,其中x,y和keep alive端点是启动参数。
每次用户触发一个请求时,都会在后台启动其中一个请求。如何打包在您的部署环境中确定,以及您打算如何管理向外扩展(后台线程、新进程、无服务器功能等)。
出于管理的目的,您可能需要在缓存中维护一些状态信息(如果一个缓存已经在运行,则不要启动新的缓存,挂起的进程状态等)。
https://stackoverflow.com/questions/62482103
复制相似问题