seyfert
Version:
The most advanced framework for discord bots
36 lines (35 loc) • 1.04 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.Heartbeater = void 0;
class Heartbeater {
sendMethod;
interval;
store = new Map();
constructor(sendMethod, interval) {
this.sendMethod = sendMethod;
this.interval = interval;
}
register(workerId, recreate) {
if (this.interval <= 0)
return;
this.store.set(workerId, {
ack: true,
interval: setInterval(() => {
const heartbeat = this.store.get(workerId);
if (!heartbeat.ack) {
heartbeat.ack = true;
return recreate(workerId);
}
heartbeat.ack = false;
this.sendMethod(workerId, { type: 'HEARTBEAT' });
}, this.interval),
});
}
acknowledge(workerId) {
const heartbeat = this.store.get(workerId);
if (!heartbeat)
return;
heartbeat.ack = true;
}
}
exports.Heartbeater = Heartbeater;