java - Web 应用程序中的并发用户限制

标签 java web-applications concurrency

在任何 Web 应用程序中限制并发用户访问的最佳方法是什么?

现有问题:

我们的网络应用程序中有不同的报告。如果一个用户正在访问任何报告,我们不得允许其他用户访问同一报告。我们怎样才能实现这一目标?

建议的解决方案:

  • 创建单例类,该类将保存带有报告类型和日期的报告信息对象,因此如果用户第一次访问报告,则创建带有当前时间的单例对象
  • 如果用户在 30 分钟后保持打开此报告且未执行任何操作,调度程序将关闭此报告。
  • 如果其他用户尝试通过检查单例对象是否包含报告信息来访问相同的报告(如果我们不允许)。

这种方法是最好的还是有更好的方法?我们实现这一目标的最佳方法是什么?

最佳答案

我不确定报告是否指的是网络应用程序中的某些屏幕。在这种情况下, 您可以在数据库中创建一个表来跟踪用户对报告的访问。仅当报告可用或由用户拥有时,用户才能访问该报告。当用户离开屏幕或 session 结束时,报告将被释放,您可以创建一个 session 监听器和一个上下文监听器来清理报告的所有权。

关于java - Web 应用程序中的并发用户限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3212277/

相关文章:

Java synchronized() 关键字——防止字段中引用的对象发生变化?

java - 代号一 - Web 服务不支持外部化对象

java - 创建 xml 文件时出现异常

security - "execute app as me"部署设置安全吗?

go - 无法使用书中的示例模拟死锁

go - 并发协程的互斥

使用方法参数进行 Java 验证

java httpsession 有效吗?

java - 自动检查 Web 应用程序的更新

sql - HQL 与 SQL/Hibernate netbeans HQL 编辑器