demo

一.定时任务官方文档

文档:https://eggjs.org/zh-cn/basics/schedule.html
可以让我们定时的去执行一些操作。比如定时的检测网站是否被篡改,定时的更新缓存,定时的爬取数据等。

二、定时任务

1.所有的定时任务都统一存放在 app/schedule 目录,先新建schedule文件夹,之后新建watchfile.js文件

  1. const SubScription = require('egg').Subscription;
  2. var i = 0;
  3. class WatchFile extends SubScription{
  4. /* 通过shedule属性来设置定时任务的执行间隔等配置 */
  5. static get schedule(){
  6. return {
  7. interval:'2 s',
  8. type:'all' //所有的worker(进程),都会执行
  9. }
  10. }
  11. async subscribe(){
  12. i++;
  13. console.log(i)
  14. }
  15. }
  16. module.exports = WatchFile;
  1. npm run dev
  2. //控制台每间隔2s就会输出1

三、定时任务的推荐写法

  1. var i = 1;
  2. module.exports = {
  3. schedule: {
  4. interval: '1m', // 1 分钟间隔
  5. type: 'all', // 指定所有的 worker 都需要执行
  6. },
  7. async task(ctx) {
  8. i++;
  9. console.log(i)
  10. }
  11. };