Kekkai/collect-currency/main.js
Redume b49bd33a93
Some checks are pending
Create and publish a Docker image / build-and-push-server (push) Waiting to run
Create and publish a Docker image / build-and-push-chart (push) Waiting to run
Create and publish a Docker image / build-and-push-CR (push) Waiting to run
Deploy docs / deploy (push) Waiting to run
feat: CoinAPI cryptocurrency collection has been removed
2024-11-07 22:31:18 +03:00

38 lines
987 B
JavaScript

const schedule = require('node-schedule');
const config = require('../shared/config/src/main.js')();
const cron = require('cron-validator');
const save_fiat = require('./save_fiat');
const logger = require('../shared/logger/src/main.js');
async function validateSchedule(schedule) {
if (!schedule) throw new Error('The crontab schedule is not set');
if (!cron.isValidCron(schedule, { alias: true }))
throw new Error('The crontab is invalid');
}
async function initialize() {
await require('../shared/database/src/create_table')();
}
async function runTasks() {
await Promise.all([save_fiat()]);
}
async function main() {
await initialize();
await validateSchedule(config['currency']['collecting']['schedule']);
await runTasks();
schedule.scheduleJob(
config['currency']['collecting']['schedule'],
runTasks,
);
}
main().catch((err) => {
logger.error('Error in main execution:', err);
});
module.exports = { main };