sdg
Version:
pomelo ts
35 lines • 2.79 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const DEFAULT_TIMEOUT = 3000;
const DEFAULT_SIZE = 500;
class TimeoutFilter {
constructor() {
this.timeout = DEFAULT_TIMEOUT;
this.maxSize = DEFAULT_SIZE;
this.timeouts = {};
this.curId = 0;
this.timeOutCount = 0;
}
async before(routeRecord, msg, session) {
if (this.timeOutCount > this.maxSize) {
console.warn('timeout filter is out of range, current size is %s, max size is %s', this.timeOutCount, this.maxSize);
return;
}
this.curId++;
this.timeOutCount++;
this.timeouts[this.curId] = setTimeout(function () {
console.error('request %j timeout.', routeRecord ? routeRecord.route : routeRecord);
}, this.timeout);
session.__timeout__ = this.curId;
}
async after(routeRecord, msg, session) {
let timeout = this.timeouts[session.__timeout__];
if (timeout) {
clearTimeout(timeout);
this.timeOutCount--;
delete this.timeouts[session.__timeout__];
}
}
}
exports.default = TimeoutFilter;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZW91dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9maWx0ZXJzL2hhbmRsZXIvdGltZW91dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUVBLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQztBQUM3QixNQUFNLFlBQVksR0FBRyxHQUFHLENBQUM7QUFFekIsTUFBcUIsYUFBYTtJQUFsQztRQUNVLFlBQU8sR0FBRyxlQUFlLENBQUM7UUFDMUIsWUFBTyxHQUFHLFlBQVksQ0FBQztRQUN2QixhQUFRLEdBQW1DLEVBQUUsQ0FBQztRQUM5QyxVQUFLLEdBQUcsQ0FBQyxDQUFDO1FBQ1YsaUJBQVksR0FBRyxDQUFDLENBQUM7SUF3QjNCLENBQUM7SUF0QlEsS0FBSyxDQUFDLE1BQU0sQ0FBQyxXQUF5QixFQUFFLEdBQWdCLEVBQUUsT0FBa0M7UUFDakcsSUFBSSxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDcEMsT0FBTyxDQUFDLElBQUksQ0FBQyxvRUFBb0UsRUFBRSxJQUFJLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNwSCxPQUFPO1NBQ1I7UUFFRCxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDYixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDcEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsVUFBVSxDQUFDO1lBQ3JDLE9BQU8sQ0FBQyxLQUFLLENBQUMscUJBQXFCLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN0RixDQUFDLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2hCLE9BQWUsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztJQUM1QyxDQUFDO0lBRU0sS0FBSyxDQUFDLEtBQUssQ0FBQyxXQUF5QixFQUFFLEdBQWdCLEVBQUUsT0FBa0M7UUFDaEcsSUFBSSxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBRSxPQUFlLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDMUQsSUFBSSxPQUFPLEVBQUU7WUFDWCxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDdEIsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3BCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBRSxPQUFlLENBQUMsV0FBVyxDQUFDLENBQUM7U0FDcEQ7SUFDSCxDQUFDO0NBQ0Y7QUE3QkQsZ0NBNkJDIn0=