我们正在做一个学校项目,并有一个问题:
如果我们要创建一个新用户,则该用户无法立即登录。因此,我们决定将TTL更改为5S,但这可能不是正确的解决方案。
此刻,我们的UserCache如下所示,其中TTL存储在config.json中为5S。
我们担心这不是正确的选择。那么TTL与UserCache成正比吗?正确的解决方案是什么?我们才开始编码。
最好的问候, 卡斯珀
// TODO:构建并使用此缓存。 (固定) 公共类UserCache {
// List of users
private ArrayList<User> users;
// Time cache should live. Definere en variabel vi kalder ttl.
private long ttl;
// Sets when the cache has been created
private long created;
// Vi har her lavet en konstruktør, hvor vi henter alle brugerne fra config klassen
public UserCache() {
this.ttl = Config.getUserTtl();
}
public ArrayList<User> getUsers(Boolean forceUpdate) {
// If we wish to clear cache, we can set force update.
// Otherwise we look at the age of the cache and figure out if we should update.
// If the list is empty we also check for new products
if (forceUpdate
|| ((this.created + this.ttl) <= (System.currentTimeMillis() / 1000L))
|| this.users.isEmpty()) {
// Get users from controller, since we wish to update.
ArrayList<User> users = UserController.getUsers();
// Set users for the instance and set created timestamp
this.users = users;
this.created = System.currentTimeMillis() / 1000L;
}
// Return the documents
return this.users;
}
}