java - 设计会话过期服务
问题描述
我与视频流提供商集成。流程如下:用户请求一个流 url,接下来我们代表用户向流提供者请求它并返回给用户。接下来,我们应该每 10 秒延长一次流 id(会话)。为了尽量减少与客户端的交互,并且由于网络速度较慢,我们希望代表用户进行此会话延长。假设用户每 2-5 分钟触发一次请求,同时服务器每 10 秒触发一次会话延长请求。
问题在于这种服务的可能设计。除了简单地定期迭代所有可用的会话密钥并调用延长服务之外,我还没有找到更好的解决方案。但是这种方法有缺点,当用户数量非常大时,它可能会减慢处理速度。此外,这种方法很难扩展。
也许您对如何克服这个问题有想法?或者请提出更好的解决方案
解决方案
我会将保持活动状态编写为一个独立的代码段,它将在结束自身之前每隔 x 秒调用一次保持活动持续 y 时间,其中 x、y 和保持活动端点是启动参数。
每次用户触发请求时 - 在后台启动其中一个。您如何打包取决于您的部署环境以及您打算如何管理横向扩展(后台线程、新进程、无服务器功能等)。
出于管理目的,您可能需要在缓存中维护一些状态信息(如果一个已经在运行、挂起的进程状态等,请不要启动一个新的)。
推荐阅读
- c# - 实体框架 6 - 播种数据库抛出 System.NullReferenceException
- mysql - 在mysql中使用自连接时防止重复结果
- c# - 绑定ItemsSource时如何将按钮添加到wpf列表框
- redux - 如何让下拉菜单在 Statelesswidget 上工作
- datatable - 数据表 单个列搜索(选择输入) ajax 后重新加载
- wordpress - 将特定 URL 重定向到同一域的另一个特定 URL
- java - 将android base64上传到codeigniter
- php - 错误:将数据库中的内容显示到网页(CMS 站点)
- java - 压缩类似的 if 语句 (Java)
- spring - Spring找不到xml配置文件