Java:如果集合元素对特定超时处于非活动状态,则删除它们

时间:2014-02-14 14:50:47

标签: java java-ee collections timeout

我有一个网络应用程序。我将用户会话存储在集合中。我还希望能够续订用户会话。因此,我需要在一段时间内存储甚至不活动的用户连接,如果它们在大约一天内处于非活动状态,我应该删除它们。比如:expirationList.add(userSesion, timeout);,但每次调用userSesion的方法时我都要重置超时。

问题: 是否有此类收集的实施?

2 个答案:

答案 0 :(得分:1)

你可以使用一个整数是自上次活动以来的时间的地图。然后,您可以获得具有超过9000或其他任何内容的所有用户。

答案 1 :(得分:1)

我通过在对象上存储时间戳来实现类似的功能。每次使用对象时更新时间戳。当您遍历要删除的项目的集合或队列时,请先检查时间戳。