Files
the-jailor/wwwroot/core/base/basePoller.js
2025-11-09 10:23:23 +01:00

32 lines
647 B
JavaScript

import EventEmitter from "events";
import {Logger} from "../logging/logger.js";
export class BasePoller extends EventEmitter {
constructor() {
super();
this.task = null;
}
async pollOnce(){
throw new Error("Not implemented.");
}
start(interval) {
if(this.task){
Logger.error("A task has already been scheduled");
return;
}
super.task = setInterval(async () => {
await this.pollOnce();
}, interval);
}
stop() {
if (this.task) {
clearInterval(this.task);
super.task = null;
}
}
}