(tasks): Implement error handling and task IDs.

This commit is contained in:
2026-09-21 22:20:22 +08:00
parent 2fa8e8bf43
commit f66f1b84cd
5 changed files with 14 additions and 5 deletions
+8 -3
View File
@@ -139,9 +139,14 @@ client.on('clientReady', async () => {
await initializeWebserver(client); await initializeWebserver(client);
tasks.forEach(async (task) => { tasks.forEach((task) => {
if (task.firstRun) await task.handle(client); const handler = () => {
setInterval(async () => await task.handle(client).catch((error) => console.log(error)), task.interval); Promise.resolve(task.handle(client))
.catch(e => console.error(`Error in '${task.id}' task:`, e));
};
if (task.firstRun) handler();
setInterval(handler, task.interval);
}); });
events.forEach(event => events.forEach(event =>
+2 -1
View File
@@ -1,8 +1,9 @@
import { Client } from 'discord.js'; import { Client } from 'discord.js';
import { checkExpiredBans } from '../utils';
import { Task } from '../types'; import { Task } from '../types';
import { checkExpiredBans } from '../utils';
const task: Task = { const task: Task = {
id: 'checkExpiredBans',
interval: 300000, interval: 300000,
firstRun: true, firstRun: true,
+2 -1
View File
@@ -1,8 +1,9 @@
import { Client } from 'discord.js'; import { Client } from 'discord.js';
import { closeOldTickets } from '../utils';
import { Task } from '../types'; import { Task } from '../types';
import { closeOldTickets } from '../utils';
const task: Task = { const task: Task = {
id: 'closeStaleTickets',
interval: 3.6e6, interval: 3.6e6,
firstRun: true, firstRun: true,
+1
View File
@@ -3,6 +3,7 @@ import { Database } from '../shared/Database';
import { Task } from '../types'; import { Task } from '../types';
const task: Task = { const task: Task = {
id: 'pruneOldMessages',
interval: 3.6e6, interval: 3.6e6,
firstRun: true, firstRun: true,
+1
View File
@@ -1,6 +1,7 @@
import { Client } from "discord.js"; import { Client } from "discord.js";
export interface Task { export interface Task {
id: string;
interval: number; interval: number;
firstRun: boolean; firstRun: boolean;