backend: add types and use named exports for daemons

This commit is contained in:
Norm 2022-09-07 16:19:18 -04:00
parent 058d414fff
commit 55d20a72b7
Signed by untrusted user: norm
GPG key ID: 7123E30E441E80DE
4 changed files with 18 additions and 15 deletions

View file

@ -74,9 +74,9 @@ export async function masterMain(): Promise<void> {
bootLogger.succ(`Now listening on port ${config.port} on ${config.url}`, null, true);
if (!envOption.noDaemons) {
import('../daemons/server-stats.js').then(x => x.default());
import('../daemons/queue-stats.js').then(x => x.default());
import('../daemons/janitor.js').then(x => x.default());
import('../daemons/server-stats.js').then(x => x.serverStats());
import('../daemons/queue-stats.js').then(x => x.queueStats());
import('../daemons/janitor.js').then(x => x.janitor());
}
}

View file

@ -8,8 +8,8 @@ const interval = 30 * 60 * 1000;
/**
* Clean up database occasionally
*/
export default function() {
async function tick() {
export function janitor(): void {
async function tick(): Promise<void> {
await AttestationChallenges.delete({
createdAt: LessThan(new Date(new Date().getTime() - 5 * 60 * 1000)),
});

View file

@ -8,7 +8,7 @@ const interval = 10000;
/**
* Report queue stats regularly
*/
export default function() {
export function queueStats(): void {
const log = [] as any[];
ev.on('requestQueueStatsLog', x => {
@ -26,7 +26,7 @@ export default function() {
activeInboxJobs++;
});
async function tick() {
async function tick(): Promise<void> {
const deliverJobCounts = await deliverQueue.getJobCounts();
const inboxJobCounts = await inboxQueue.getJobCounts();

View file

@ -6,20 +6,20 @@ const ev = new Xev();
const interval = 2000;
const roundCpu = (num: number) => Math.round(num * 1000) / 1000;
const round = (num: number) => Math.round(num * 10) / 10;
const roundCpu = (num: number): number => Math.round(num * 1000) / 1000;
const round = (num: number): number => Math.round(num * 10) / 10;
/**
* Report server stats regularly
*/
export default function() {
export function serverStats(): void {
const log = [] as any[];
ev.on('requestServerStatsLog', x => {
ev.emit(`serverStatsLog:${x.id}`, log.slice(0, x.length || 50));
});
async function tick() {
async function tick(): Promise<void> {
const cpu = await cpuUsage();
const memStats = await mem();
const netStats = await net();
@ -60,20 +60,23 @@ function cpuUsage(): Promise<number> {
}
// MEMORY STAT
async function mem() {
async function mem(): Promise<si.Systeminformation.MemData> {
const data = await si.mem();
return data;
}
// NETWORK STAT
async function net() {
async function net(): Promise<si.Systeminformation.NetworkStatsData> {
const iface = await si.networkInterfaceDefault();
const data = await si.networkStats(iface);
return data[0];
}
// FS STAT
async function fs() {
async function fs(): Promise<si.Systeminformation.DisksIoData | {
rIO_sec: number;
wIO_sec: number;
}> {
const data = await si.disksIO().catch(() => ({ rIO_sec: 0, wIO_sec: 0 }));
return data || { rIO_sec: 0, wIO_sec: 0 };
return data;
}