1.含义
虽然我们通过框架开发的Web服务器是请求响应模型的
但是仍然还会有许多场景需要执行一些定时任务
例如:
- 定时进行文件切割、临时文件删除。
- 定时上报应用状态。(例如监控系统, 时时监控系统有没有问题, 典型例子MongoDB/Redis集群选举)
- 定时从远程接口更新本地缓存。
- 框架提供了一套机制来让定时任务的编写和维护更加优雅
废物不多说,直接上代码
const Subscription = require("egg").Subscription;
class UpdateCache extends Subscription {
// 通过 schedule 属性来设置定时任务的执行间隔等配置
static get schedule() {
return {
interval: "3s", // 3s间隔执行一次
type: "all", // all表示当前服务器上所有相同的Node进行都执行
};
}
// subscribe 是真正定时任务执行时被运行的函数
async subscribe() {
let response = await this.ctx.url(接口地址);
let data = new Buffer(response.data).toString();
console.log(data);
}
}
module.exports = UpdateCache;