app.js 1.32 KB
const schedule = require('node-schedule');
const Sender = require('influx-batch-sender');
const dayjs = require('dayjs');
const config = require('./config/index');
const {logger} = require('./libs/logger');

const spiderTask = require('./tasks/spider-task');
const calvAvgTask = require('./tasks/calc-task');
const clearTask = require('./tasks/clear-task');
const priceTask = require('./tasks/price-task');
const priceLineTask = require('./tasks/price-line-task');
const pageCheckTask = require('./tasks/check-du-task');

global.isProduction = process.env.NODE_ENV === 'production';
global.sender = new Sender(config.monitorReport); // 初始化数据上报

schedule.scheduleJob('0 */15 * * * *', () => {
  logger.info('[process]task start spiderTask');
  spiderTask(dayjs().unix());
});

schedule.scheduleJob('0 15 10 * * *', () => {
  logger.info('[process]task start calvAvgTask');
  calvAvgTask();
});

schedule.scheduleJob('0 59 23 * * *', () => {
  logger.info('[process]task start clearTask');
  clearTask();
});

schedule.scheduleJob('0 10 1 * * *', () => {
  logger.info('[process]task start priceTask');
  priceTask();
});

priceLineTask.forEach(taskInfo => {
  schedule.scheduleJob(taskInfo.cron, taskInfo.task);
});

schedule.scheduleJob('0 0 * * * *', () => {
  logger.info('[process]task start checkPageTask');
  pageCheckTask();
});