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

时间:2010-07-09 11:52:00

标签: java web-applications concurrency

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

现有问题:

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

建议的解决方案:

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

这种方法是最好的还是有更好的方法?我们可以通过哪些方式实现这一目标?

1 个答案:

答案 0 :(得分:2)

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