(二)egg-基础功能

一、定时任务

  • (1)编写定时任务
    所有的定时任务均放在app/shedule目录下,每一个文件都是一个独立的定时任务,可以配置定时任务和要执行的方法。
    例如:更新远程数据到内存缓存的定时任务,可以在app/schedule目录下创建一个文件:
const Subscription = require('egg').Subscription;

class UpdateCache extends Subscription {
   
  // 通过 schedule 属性来设置定时任务的执行间隔等配置
  static get schedule() {
   
    return {
   
      interval: '1m', // 1 分钟间隔
      type: 'all', // 指定所有的 worker 都需要执行
    };
  }

  // subscribe 是真正定时任务执行时被运行的函数
  async subscribe() {
   
    const res = await this.ctx.curl('http://www.api.com/cache', {
   
      dataType: 'json',
    });
    this.ctx.app.cache = res.data;
  }
}

module.exports = UpdateCache;
//或者使用如下写法
module.exports = {
   
  schedule: {
   
    interval: '1m', // 1 分钟间隔
    type: 'all', // 指定所有的 worker 都需要执行
  },
  //ctx可以调用service
  async task(ctx) {
   
    const res = await ctx.curl('http://www.api.com/cache', {
   
      dataType: 'json',
    });
    ctx.app.cache = res.data;
  },
};

上述定时任务会在每一个worker进程上每一分钟执行一次,将远程数据挂载在app.cache上。

  • (2)定时方式
    定时任务可以指定interval或者cron两种不同的定时方式。
    interval:可以配置为数字或字符类型
    cron:配置定时任务的执行时机&#x
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值