feat(events): Adds AcknowledgableEvent
This commit is contained in:
parent
6d7a0e7cfb
commit
b82ab7dbc4
18 changed files with 228 additions and 77 deletions
38
source/Events/Handlers/CleanupEvent.ts
Normal file
38
source/Events/Handlers/CleanupEvent.ts
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
import {EventConfiguration, EventType, TimedEvent} from "../EventHandler.types";
|
||||
import {EventHandler} from "../EventHandler";
|
||||
import {Logger} from "log4js";
|
||||
import {CleanEvent} from "../EventClasses/CleanEvent";
|
||||
|
||||
export class CleanupEvent implements TimedEvent {
|
||||
type: EventType.TimeBased = EventType.TimeBased;
|
||||
configuration: EventConfiguration = {
|
||||
name: "Cleanup event",
|
||||
};
|
||||
cronExpression: string = "0 5 * * *";
|
||||
|
||||
constructor(
|
||||
private readonly eventHandler: EventHandler,
|
||||
private readonly logger: Logger
|
||||
) {}
|
||||
|
||||
public execute(): void {
|
||||
this.logger.info("Issue cleanup...")
|
||||
|
||||
this.eventHandler.dispatch<CleanEvent>(new CleanEvent());
|
||||
this.cleanEvents();
|
||||
}
|
||||
|
||||
private cleanEvents(): void {
|
||||
const eventHandlers = this.eventHandler.EventHandlers;
|
||||
for (let [eventClass, entries] of eventHandlers.entries()) {
|
||||
for (let [id, entry] of entries.entries()) {
|
||||
if (entry.persistent) {
|
||||
continue;
|
||||
}
|
||||
|
||||
this.eventHandler.removeHandler(eventClass, id);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue