TTL,用于创建用户及其功能

时间:2019-01-03 21:24:49

标签: caching ttl

我们正在做一个学校项目,并有一个问题:

如果我们要创建一个新用户,则该用户无法立即登录。因此,我们决定将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;
}

}

0 个答案:

没有答案