我在字符串中存储了会话ID,如果它空闲5分钟,我想为它保留一个计时器,我想关闭会话。会话在不同的 JAR 中创建,即第三方应用程序。无法编辑。它只是将会话 ID 返回到我的 API。
我所能做的就是使用我拥有的会话 ID。我正在尝试池会议。我们正在使用 Jre 1.7
如果,我无法获取上次访问的字符串的时间戳。那么我可以将该字符串存储在 Map/List 中并获取上次访问该字符串时的时间戳吗?
请帮助我。
你可以用你自己的类来解决它 会话:
public class Session {
private String sessionId;
private long timestamp = System.currentTimeMillis() 1000;
private long duration = 60 * 5;
public Session(String sessionId) {
this.sessionId = sessionId;
}
public boolean isOutOfTime() {
if (this.timestamp + duration < System.currentTimeMillis() 1000) {
return false;
} else {
return true;
}
}
}
在 lastTimeAccess 的 String 类中没有这样的属性/成员,
您的猜测是正确的,您需要定义/实现您的自定义。
Map<String,Long>
您需要仔细处理字符串对象中的不可变特征
标准 Java 库中没有任何内容可以支持这一点;您必须构建自己的"Wrapper"类;并围绕它缓存基础设施。不要误会:正确处理可能是一项高级任务!
因此,我会非常小心地自己做这件事。这是一个高级主题,我的建议是:寻找已经为您执行此操作的现有框架,例如 ehcachee。
说真的:在这里重新发明轮子时要小心。