Uptime calculation improvement and 1-year uptime (#2750)

This commit is contained in:
Louis Lam 2023-09-01 05:19:21 +08:00 committed by GitHub
parent eec221247f
commit 076331bf00
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
22 changed files with 1306 additions and 264 deletions

View file

@ -0,0 +1,37 @@
const { ArrayWithKey } = require("./array-with-key");
/**
* Limit Queue
* The first element will be removed when the length exceeds the limit
*/
class LimitQueue extends ArrayWithKey {
__limit;
__onExceed = null;
/**
* @param {number} limit
*/
constructor(limit) {
super();
this.__limit = limit;
}
/**
* @inheritDoc
*/
push(key, value) {
super.push(key, value);
if (this.length() > this.__limit) {
let item = this.shift();
if (this.__onExceed) {
this.__onExceed(item);
}
}
}
}
module.exports = {
LimitQueue
};