<acronym id="indot"><dfn id="indot"></dfn></acronym>
<span id="indot"></span>

<bdo id="indot"><meter id="indot"></meter></bdo>
<label id="indot"><samp id="indot"></samp></label>
<label id="indot"><xmp id="indot">
  • <span id="indot"><table id="indot"></table></span>
    <center id="indot"><optgroup id="indot"></optgroup></center>
  • <bdo id="indot"><meter id="indot"></meter></bdo>
      當前位置:首頁 > javascript > nodejs > 正文內容

      Nodejs 定時任務(node-schedule)

      hxing6412年前 (2023-10-15)nodejs3689

      安裝:

      npm install node-schedule

       

      Cron風格定時器


      var schedule = require('node-schedule');
      
      function scheduleCronstyle(){
          schedule.scheduleJob('30 * * * * *', function(){
              console.log('scheduleCronstyle:' + new Date());
          }); 
      }
      
      scheduleCronstyle();


        schedule.scheduleJob的回調函數中寫入要執行的任務代碼,一個定時器就完成了!

        下面我們再來講講Cron風格定時器傳入的參數具體代表什么,先來看看上面執行結果,如下圖

        傳入的'30 * * * * *'帶來的結果是每分鐘的30秒時都會執行,下面來看看這個傳入參數分別代碼什么

        通配符解釋

      *  *  *  *  *  *
      ┬ ┬ ┬ ┬ ┬ ┬
      │ │ │ │ │  |
      │ │ │ │ │ └ 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)

        6個占位符從左到右分別代表:秒、分、時、日、月、周幾

        '*'表示通配符,匹配任意,當秒是'*'時,表示任意秒數都觸發,其它類推

        下面可以看看以下傳入參數分別代表的意思

      每分鐘的第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'

        這樣很容易根據自已的需求用簡短的代碼去實現。

       

        Cron風格定時器-范圍觸發

        上面的傳入參數占位符中還可以傳入范圍,比如下面示例


      var schedule = require('node-schedule');
      
      function scheduleCronstyle(){
          schedule.scheduleJob('1-10 * * * * *', function(){
              console.log('scheduleCronstyle:' + new Date());
          }); 
      }
      
      scheduleCronstyle();

       每分鐘的1-10秒都會觸發,

       其它占用符使用方法一樣,輸入范圍可以看到參考前面"通配符解釋"

       

      遞歸規則定時器

        再看看另一種風格寫定時器

      var schedule = require('node-schedule');
      
      function scheduleRecurrenceRule(){
      
          var rule = new schedule.RecurrenceRule();
          // rule.dayOfWeek = 2;
          // rule.month = 3;
          // rule.dayOfMonth = 1;
          // rule.hour = 1;
          // rule.minute = 42;
          rule.second = 0;
          
          schedule.scheduleJob(rule, function(){
             console.log('scheduleRecurrenceRule:' + new Date());
          });
         
      }
      
      scheduleRecurrenceRule();


        每分鐘第60秒時就會觸發,其它規則可以看我注釋中的代碼,當然,也可以組合使用,達到需求效果!

       

      對象文本語法定時器

        直接看使用示例


      var schedule = require('node-schedule');
      
      function scheduleObjectLiteralSyntax(){
      
          //dayOfWeek
          //month
          //dayOfMonth
          //hour
          //minute
          //second
      
          schedule.scheduleJob({hour: 16, minute: 11, dayOfWeek: 1}, function(){
              console.log('scheduleObjectLiteralSyntax:' + new Date());
          });
         
      }
      
      scheduleObjectLiteralSyntax();


        代碼實現的是每周一的下午16:11分觸發,其它組合可以根據我代碼中的注釋參數名自由組合

        

      取消定時器

        示例如下,定時器對象的cancl方法即可

          var counter = 1;
          var j = schedule.scheduleJob('* * * * * *', function(){
              
              console.log('定時器觸發次數:' + counter);
              counter++;
              
          });
          setTimeout(function() {
              console.log('定時器取消')
              j.cancel();
          })


      寫在之后

        定時器功能大部分需求都可以借助node-schedule完成了,用它在項目中使用效果也不錯,各種需求可以滿足^_^!


      掃描二維碼推送至手機訪問。

      版權聲明:本文由星星博客發布,如需轉載請注明出處。

      本文鏈接:http://www.7811333.com/?id=425

      分享給朋友:

      “Nodejs 定時任務(node-schedule)” 的相關文章

      mongodb數據備份和讀取

      下載mongodb數據工具,https://www.mongodb.com/try/download/database-tools,解壓到目錄中用命令行進入此目錄,使用mongodump命令生成備份文件,例如備份本地test數據庫到d:\db目錄, 在db目錄會生成一個test文件夾: mongod...

      koa設置響應頭

      設置響應頭async function responseTime(ctx, next) {   const start = Date.now();   await next()...

      構建Node.js Web 應用:使用Express、EJS 和 Mongoose

      在本篇博客文章中,我們將介紹如何使用Node.js的Express框架、EJS模板引擎和Mongoose庫來構建一個簡單的Web應用實例。通過代碼示例和詳細解釋,幫助讀者了解如何結合這些工具來構建一個完整的Node.js Web 應用。1. 準備工作首先,確保你已經安裝了Node.js和npm(No...

      深入理解 Node.js 開發中的 Express 路由與中間件

      在 Node.js 開發中,Express 是一個非常流行的框架,它提供了一種簡潔而靈活的方式來構建 Web 應用程序。在 Express 中,路由和中間件是兩個核心概念,它們在開發過程中起著重要的作用。本文將深入探討 Express 路由和中間件的概念、使用方法以及...

      深入理解Node.js進程管理

      在Node.js中,進程管理是一個非常重要的話題,它涉及到如何創建、控制和監測進程,以及如何利用多核處理器。本文將深入探討Node.js中的進程管理,并通過詳細的代碼示例幫助讀者更好地理解。 1. 什么是進程? 首先,讓我們了解一下...

      發表評論

      訪客

      ◎歡迎參與討論,請在這里發表您的看法和觀點。
      主站蜘蛛池模板: 亚洲国产综合人成综合网站| 国产精品亚洲综合专区片高清久久久| 色偷偷狠狠色综合网| 色噜噜狠狠色综合中国| 日韩欧国产精品一区综合无码| 久久婷婷五月综合国产尤物app| 久久久亚洲裙底偷窥综合| 国产精品国产色综合色| 狠狠色狠狠色综合曰曰| 色综合99久久久无码国产精品| 亚洲综合国产精品第一页| 色婷婷六月亚洲综合香蕉| 亚洲国产综合专区在线电影| 亚洲熟女综合一区二区三区| 亚洲国产综合专区在线电影| 国产成人综合在线视频| 亚洲综合一区二区三区四区五区| 亚洲综合色在线观看亚洲| 狠狠综合久久久久综合小说网| 91精品国产综合久| 一本色道久久88综合亚洲精品高清 | 色综合91久久精品中文字幕| 亚洲欧洲日韩国产综合在线二区| 婷婷久久久五月综合色| 亚洲日韩在线中文字幕综合| 久久狠狠爱亚洲综合影院| 亚洲综合久久综合激情久久| 狠狠色狠狠色综合曰曰| 国产亚洲综合成人91精品| 伊人狠狠色丁香综合尤物| 伊人色综合久久天天人手人婷| 大香网伊人久久综合观看| 丁香六月婷婷综合| 国产亚洲欧洲Aⅴ综合一区| 丁香色欲久久久久久综合网| 一本一本久久aa综合精品| 久久国产精品亚洲综合| 91精品国产综合久久四虎久久无码一级 | 亚洲综合AV在线在线播放| 99精品国产综合久久久久五月天| 老色鬼久久综合第一|