站長資訊網
        最全最豐富的資訊網站

        node項目中怎么使用Node Schedule創建定時任務

        node項目中怎么創建定時任務?下面本篇文章給大家介紹一下在node項目中怎么使用Node Schedule制定定時任務腳本,希望對大家有所幫助!

        node項目中怎么使用Node Schedule創建定時任務

        nodejs的后端也是需要定時任務做處理,例如備份,定時發送郵件,結算等操作,所以使用了Node Schedule這個npm幫助我們制定定時任務腳本。

        npm install node-schedule

        Node Schedule 中的每個定時任務都由一個Job對象表示。可以手動創建,然后執行schedule()方法以應用任務,或使用scheduleJob()如下。

        Job對象是`EventEmitter,并發出以下事件:

        • run每次執行后的事件。
        • scheduled每次計劃運行時的事件。
        • canceled,當它在執行之前調用被取消的事件。
        • 一個error當被觸發調度作業調用拋出或退出事件拒絕Promise

        scheduledcanceled事件都接收一個 JavaScript 日期對象作為參數)。 注意的是,任務是第一次立即執行的,因此如果使用scheduleJob()方法創建任務,將錯過第一個scheduled 事件觸發,但您可以手動查詢調用。

        Cron格式

        *    *    *    *    *    * ┬    ┬    ┬    ┬    ┬    ┬ │    │    │    │    │    │ │    │    │    │    │    └ day of week (0 - 7) (0 or 7 is Sun) │    │    │    │    └───── month (1 - 12) │    │    │    └────────── day of month (1 - 31) │    │    └─────────────── hour (0 - 23) │    └──────────────────── minute (0 - 59) └───────────────────────── second (0 - 59, OPTIONAL)  每分鐘的第30秒觸發: '30 * * * * *'  每小時的1分30秒觸發 :'30 1 * * * *'  每天的凌晨1點1分30秒觸發 :'30 1 1 * * *'  每月的1日1點1分30秒觸發 :'30 1 1 1 * *'  2016年的1月1日1點1分30秒觸發 :'30 1 1 1 2016 *'  每周1的1點1分30秒觸發 :'30 1 1 * * 1'

        這里是個人對node-schedule封裝類來使用增刪改查定時任務

        const schedule = require('node-schedule');  exports.Interval = class Interval {   constructor({ unit_name, maintain_time, last_alarm }) {     this.unit_name = unit_name          // 任務名字     this.maintain_time = maintain_time  // 定時時間     this.last_alarm = last_alarm || ""        // 上一次定時任務名字   }    // 生成新的定時任務   async create(callback) {     // 終止之前的定時任務     if (this.last_alarm !== "") {       this.delete(this.last_alarm)     }     schedule.scheduleJob(`${this.unit_name}`, `${this.maintain_time}`, callback);   }    // 刪除定時任務   delete() {     if (schedule.scheduledJobs[this.unit_name]) {       schedule.scheduledJobs[this.unit_name].cancel();       return true     }     return false   }    // 找到一個定時任務   findOne(name) {     if (schedule.scheduledJobs[name]) {       return schedule.scheduledJobs[name]     } else {       throw new Error("未找到任務名")     }   }    // 查看所有的定時任務   findAll() {     return schedule.scheduledJobs   } }

        這里是調用時定時任務Interval實例

        // 定時任務 new Util.Interval({   unit_name: '自動分發任務 0 0 12 * * *',   maintain_time: '0 0 12 * * *',   last_alarm: '自動分發任務 0 0 12 * * *' }).create(async () => {   // 寫入你自己想在定時任務觸發的時候,想要執行的函數 })

        贊(0)
        分享到: 更多 (0)
        網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
        主站蜘蛛池模板: 久久精品9988| 久99久无码精品视频免费播放| 91午夜精品亚洲一区二区三区 | 青春草无码精品视频在线观| 国产a精品视频| 99免费精品视频| 91麻豆精品一二三区在线| 精品亚洲成AV人在线观看| 亚洲精品无码AV中文字幕电影网站| 国产精品成人久久久久三级午夜电影| 国产精品青草久久久久婷婷| 国产精品看高国产精品不卡| 亚洲国产精品无码久久久蜜芽 | 日产精品久久久一区二区| 亚洲国产精品第一区二区三区| 久久久久亚洲精品无码网址 | 国产91在线精品| 四虎影视国产精品永久在线| 国产精品久久久久影视不卡| 国产精品扒开腿做爽爽爽视频| 久久精品国产亚洲AV麻豆网站| 亚洲日韩国产精品第一页一区| 午夜精品久久久久久| 亚洲精品成人在线| 亚洲国产精品福利片在线观看| 一本久久a久久精品vr综合| 无码日韩人妻精品久久蜜桃| 熟妇无码乱子成人精品| 人人妻人人澡人人爽欧美精品| 日本午夜精品一区二区三区电影| 夜夜精品无码一区二区三区| 亚洲国产精品成人AV无码久久综合影院| 午夜精品久久久久久久无码| 久久五月精品中文字幕| 麻豆国内精品欧美在线| 欧美激情精品久久久久久久| 日韩精品中文字幕第2页| 最新欧美性爱精品一区二区三区| 亚洲精品无码永久在线观看你懂的| 无码人妻精品一区二区三18禁| 日韩人妻精品一区二区三区视频 |