Files
mc-tracker/src/scanner/scanner.ts

28 lines
665 B
TypeScript
Raw Normal View History

2024-01-01 03:45:00 +00:00
import cron from "node-cron";
2024-01-03 07:25:17 +00:00
import { serverManager } from "..";
2024-01-01 03:45:00 +00:00
import Config from "../../data/config.json";
2024-01-01 17:04:19 +00:00
import { logger } from "../utils/logger";
2024-01-01 03:45:00 +00:00
export default class Scanner {
constructor() {
cron.schedule(Config.scanner.updateCron, () => {
this.scanServers();
});
}
/**
* Start a server scan to ping all servers.
*/
private async scanServers(): Promise<void> {
2024-01-01 17:04:19 +00:00
logger.info(`Scanning servers ${serverManager.getServers().length}`);
2024-01-01 03:45:00 +00:00
// ping all servers in parallel
await Promise.all(
2024-01-03 07:25:17 +00:00
serverManager.getServers().map((server) => server.pingServer())
2024-01-01 03:45:00 +00:00
);
2024-01-01 17:04:19 +00:00
logger.info("Finished scanning servers");
2024-01-01 03:45:00 +00:00
}
}