mirror of
https://github.com/louislam/uptime-kuma.git
synced 2025-05-20 15:20:37 -04:00
Uptime calculation improvement and 1-year uptime (#2750)
This commit is contained in:
parent
eec221247f
commit
076331bf00
22 changed files with 1306 additions and 264 deletions
37
server/utils/limit-queue.js
Normal file
37
server/utils/limit-queue.js
Normal 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
|
||||
};
|
Loading…
Add table
Add a link
Reference in a new issue