egg提供了强大的定时任务系统。通过定时任务,可以系统修改服务的缓存数据,以便处理需要定时更新的数据。

在app/schedule目录下新建一个js文件,每一个js文件就是一个定时任务。

一、定时任务(以定时更新cache数据为例)

1、设置1分钟间隔,可以在服务其他地方获取this.ctx.app.cache的值

module.exports = {schedule: {interval: '1m', // 1 分钟间隔type: 'all', // 指定所有的 worker 都需要执行},async task(ctx) {const res = await ctx.curl('http://www.api.com/cache', {dataType: 'json',});ctx.app.cache = res.data;},
};

2、还可以设置单位如下

1ms -> 1毫秒

1s -> 1秒

1m -> 1分钟

等。。。

二、定点任务(以每周一的5点30分0秒更新排行榜为例)

1、使用cron参数设定时间,cron参数分为6个部分,*表示所有都满足

*    *    *    *    *    *
┬    ┬    ┬    ┬    ┬    ┬
│    │    │    │    │    |
│    │    │    │    │    └ 星期 (0 - 7) (0或7都是星期日)
│    │    │    │    └───── 月份 (1 - 12)
│    │    │    └────────── 日期 (1 - 31)
│    │    └─────────────── 小时 (0 - 23)
│    └──────────────────── 分钟 (0 - 59)
└───────────────────────── 秒 (0 - 59, optional)

2、案例如下

module.exports = {schedule: {cron: '0 30 5 * * 1', //每周一的5点30分0秒更新type: 'all', // 指定所有的 worker 都需要执行},async task(ctx) {const res = await ctx.curl('http://www.api.com/cache', {dataType: 'json',});ctx.app.cache = res.data;},
};

三、其他参数

1、启动执行immediate

设置immediate参数为true时,该定时任务会在项目启动时,立即执行一次定时任务

module.exports = {schedule: {interval: '1m', // 1 分钟间隔type: 'all', // 指定所有的 worker 都需要执行immediate: true, //项目启动就执行一次定时任务},async task(ctx) {const res = await ctx.curl('http://www.api.com/cache', {dataType: 'json',});ctx.app.cache = res.data;},
};

2、配置disable参数为true时,该定时任务即关闭

3、指定定时任务执行环境env

env: ["dev", "debug"] //该定时任务在开发环境和debug模式下才执行

egg定时和定点任务相关推荐

  1. vb net的定时循环_Python3-定时任务的四种实现方式

    最近做一个小程序开发任务,主要负责后台部分开发:根据项目需求,需要实现三个定时任务: 1>定时更新微信token,需要2小时更新一次: 2>商品定时上线: 3>定时检测后台服务是否存 ...

  2. python定时任务_Python3实现定时任务的四种方式

    最近做一个小程序开发任务,主要负责后台部分开发:根据项目需求,需要实现三个定时任务: 1>定时更新微信token,需要2小时更新一次: 2>商品定时上线: 3>定时检测后台服务是否存 ...

  3. HarmonyOS之深入解析服务卡片的使用

    一.概述 ① 基本概念 服务卡片(以下简称"卡片")是 FA 的一种界面展示形式,将 FA 的重要信息或操作前置到卡片,以达到服务直达,减少体验层级的目的. 卡片常用于嵌入到其他应 ...

  4. 【渝粤题库】国家开放大学2021春2322物流信息技术题目

    试卷代号:2322 2021年春季学期期末统一考试 物流信息技术 试题 2021年7月 一.单项选择题(每小题1分,共10分,将正确答案选项的字母填入括号内) 1.全球卫星定位系统也称为( )技术. ...

  5. 550什么意思_研报翻译官第二期:带你了解什么是CPI

    欢迎收看"第二期"研报翻译官,临近年末,各类金融研报接踵而至,我们也常会看到GDP.CPI.PPI这类字眼. 过年回家跟亲戚朋友唠嗑的时候,如果不扯上几句CPI或PPI,都显自己得 ...

  6. python做定时任务的方式及优缺点_Python3-定时任务四种实现方式

    最近做一个小程序开发任务,主要负责后台部分开发:根据项目需求,需要实现三个定时任务: 1>定时更新微信token,需要2小时更新一次: 2>商品定时上线: 3>定时检测后台服务是否存 ...

  7. oracle透明网关访问sqlserver_基于智慧照明网关的地下停车场照明解决方案

    目前,很多建筑都建有地下停车场,由于这些停车场面积大.光线差,车辆经常出入,很难实现停车场内部照明的自动控制,导致了地下车库耗电严重.地下车库照明的耗电问题,从本质上来讲,是用电的管理问题,稍有不慎, ...

  8. 代码埋点、可视化埋点、无埋点几种数据埋点方案的分析报告

    目录 数据采集的核心问题 一.埋点是什么 二.为什么要埋点 三.埋点有哪些方式 四.各埋点方式优劣对比 五.其他 在这篇文章里面,我们会对数据采集的一些基本概念进行阐述,然后,会针对目前市面上新增的一 ...

  9. 如何运营高效的社群?

    在2015年初的时候,社群运营作为一种维护客户关系.提高用户粘性的运营手段,开始在互联网行业盛行.早起的社群大多以QQ群和微信群为主,将目标用户聚拢在一起,通过运营人员作为管理角色以达成某种运营目的. ...

最新文章

  1. CTF---Web入门第十题 Once More
  2. 网站优化上首页不算成功稳定排名才算
  3. 在React中处理事件
  4. 用户体验岗如何说服其他部门_为什么我们应该说服用户更新他们的浏览器-这是双赢的。...
  5. 自动采集壁纸的微信小程序
  6. vue 加载数据 影响seu_VUE常见面试题
  7. cadence快捷键修改文件_PCB快捷键设置
  8. 剑指Offer之寻找链表中环的入口问题
  9. 性能优化 - 之一 (C/C++)
  10. 放之四海皆适用的设计原则(一)
  11. 面向对象的JavaScript(1):创建简单的类
  12. Hbase KeyValue结构详解
  13. TensorFlow MNIST 数据集
  14. c语言程序设计教程二进制是什么,C语言程序设计教程
  15. QQ坦白说解密解决方案(二)
  16. matlab中simulink无法打开,【转】Simulink打不开的解决办法
  17. 基于VB和单片机的智能家居监控系统设计
  18. Linux 程序编译过程的来龙去脉
  19. 还有很多事情等待去完成。
  20. 数字集成电路设计考试概念总结

热门文章

  1. 利用SwitchyOmega和Jmeter实现Jmeter录制功能
  2. StackExchange.Redis官方文档(一)【基本用法】
  3. 数一独有:向量代数和空间解析几何
  4. 8.1 (电脑配置) 联想 启天M4390 台式电脑台式机电脑配置
  5. 从实践理解《程序员的自我修养》(1)
  6. 【Vue】解析渲染markdown文件
  7. redis事务方法释疑以及RedisTemplate事务实战
  8. Android Studio动态调试smail代码----环境配置
  9. java兼容的浏览器_介绍几款浏览器兼容性测试工具
  10. 二代身份证读取-微调版