forked from FoundKeyGang/FoundKey
backend: add types and use named exports for daemons
This commit is contained in:
parent
058d414fff
commit
55d20a72b7
4 changed files with 18 additions and 15 deletions
|
@ -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());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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)),
|
||||
});
|
||||
|
|
|
@ -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();
|
||||
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue