mempool/backend/src/tasks/lightning/stats-updater.service.ts

45 lines
1.3 KiB
TypeScript
Raw Normal View History

2022-08-03 12:13:55 +02:00
import DB from '../../database';
2022-07-06 13:20:37 +02:00
import logger from '../../logger';
import lightningApi from '../../api/lightning/lightning-api-factory';
import LightningStatsImporter from './sync-tasks/stats-importer';
import config from '../../config';
2022-04-19 17:37:06 +04:00
class LightningStatsUpdater {
public async $startService(): Promise<void> {
logger.info('Starting Lightning Stats service');
2022-04-19 17:37:06 +04:00
// LightningStatsImporter.$run();
this.$runTasks();
}
private setDateMidnight(date: Date): void {
date.setUTCHours(0);
date.setUTCMinutes(0);
date.setUTCSeconds(0);
date.setUTCMilliseconds(0);
2022-07-04 12:00:16 +02:00
}
private async $runTasks(): Promise<void> {
await this.$logStatsDaily();
setTimeout(() => {
this.$runTasks();
}, 1000 * config.LIGHTNING.NODE_STATS_REFRESH_INTERVAL);
2022-04-19 17:37:06 +04:00
}
/**
* Update the latest entry for each node every config.LIGHTNING.NODE_STATS_REFRESH_INTERVAL seconds
*/
private async $logStatsDaily(): Promise<void> {
const date = new Date();
this.setDateMidnight(date);
date.setUTCHours(24);
2022-04-29 03:57:27 +04:00
logger.info(`Updating latest node stats`);
const networkGraph = await lightningApi.$getNetworkGraph();
2022-08-03 12:13:55 +02:00
LightningStatsImporter.computeNetworkStats(date.getTime() / 1000, networkGraph);
}
2022-04-19 17:37:06 +04:00
}
export default new LightningStatsUpdater();