node定时任务

1.新建一个schedule文件

2.如下代码举例

const Subscription = require('egg').Subscription;
const report = require('../utils/report');

class SendMail extends Subscription {
  // 通过 schedule 属性来设置定时任务的执行间隔等配置
  static get schedule() {
    return {
      // interval: '1h', // 1 小时间隔
      type: 'worker', // 每台机器上只有一个 worker 会执行这个定时任务
      // immediate: true, // app ready 后立即跑一次(上线注释掉)
      cron: '0 30 10 ? * MON', // 每周一早上10点
      // cron: '0 */1 * * * ?', // 每1分钟一次
      disable: require('os').hostname() !== 'lbs-dev-monitor011015250024.center.na62',
    };
  }

  // subscribe 是真正定时任务执行时被运行的函数
  *subscribe() {
    const { logger, diamond } = this.ctx;
    logger.info('monitor check schedule');
    const monitorData = yield diamond.getConfig('monitor', 'lbs');
    logger.info('get cc from diamond');

    const feedbackMailCC = JSON.parse(monitorData).feedbackMailCC;
    yield report(new Date().getTime(), 1,feedbackMailCC, logger);
  }
}

module.exports = SendMail;

猜你喜欢

转载自www.cnblogs.com/kaiqinzhang/p/11884203.html
今日推荐