您好,登錄后才能下訂單哦!
這篇文章主要講解了Node.js中node-schedule模塊的使用方法,內容清晰明了,對此有興趣的小伙伴可以學習一下,相信大家閱讀完之后會有幫助。
node-schedule是 Node.js 的一個定時任務(crontab)模塊。我們可以使用定時任務來對服務器系統進行維護,讓其在固定的時間段執行某些必要的操作,還可以使用定時任務發送郵件、爬取數據等;
一、安裝
npm install node-schedule # 或 yarn add node-schedule
二、基礎用法
使用schedule.scheduleJob()
即可創建一個定時任務,一個簡單的上手示例:
const schedule = require('node-schedule'); // 當前時間的秒值為 10 時執行任務,如:2018-7-8 13:25:10 let job = schedule.scheduleJob('10 * * * * *', () => { console.log(new Date()); });
如何運行示例?(首先確保安裝了 Node.js)
1、新建一個 *.js 文件,如:test.js,粘貼示例代碼;
2、終端(或命令行)cd
到當前文件的所在目錄;
3、終端執行node test.js
即可執行代碼;
4、console
會在終端界面直接輸出內容;
5、Ctrl + C
可退出執行;
時間數值按下表表示
* * * * * *
┬ ┬ ┬ ┬ ┬ ┬
│ │ │ │ │ |
│ │ │ │ │ └ 星期幾,取值:0 - 7,其中 0 和 7 都表示是周日
│ │ │ │ └─── 月份,取值:1 - 12
│ │ │ └────── 日期,取值:1 - 31
│ │ └───────── 時,取值:0 - 23
│ └──────────── 分,取值:0 - 59
└─────────────── 秒,取值:0 - 59(可選)
也可以指定一個具體的時間,如:
const schedule = require('node-schedule'); // 定義一個未來的時間 let date = new Date(2016, 6, 13, 15, 50, 0); // 定義一個任務 let job = schedule.scheduleJob(date, () => { console.log(new Date()); });
三、進階用法
除了基礎的用法,我們還可以使用一些更為靈活的方法來實現定時任務。
3.1、隔一段時間執行一次
const schedule = require('node-schedule'); // 定義規則 let rule = new schedule.RecurrenceRule(); rule.second = [0, 10, 20, 30, 40, 50]; // 每隔 10 秒執行一次 // 啟動任務 let job = schedule.scheduleJob(rule, () => { console.log(new Date()); });
rule
支持設置的值有second
、minute
、hour
、date
、dayOfWeek
、month
、year
等。一些廠家的用法,如:
每秒執行
rule.second = [0,1,2,3......59];
每分鐘 0 秒執行
rule.second = 0;
每小時 30 分執行
rule.minute = 30; rule.second = 0;
每天 0 點執行
rule.hour =0; rule.minute =0; rule.second =0;
每月 1 號的 10 點執行
rule.date = 1; rule.hour = 10; rule.minute = 0; rule.second = 0;
每周一、周三、周五的 0 點和 12 點執行
rule.dayOfWeek = [1,3,5]; rule.hour = [0,12]; rule.minute = 0; rule.second = 0;
四、取消任務
可以使用cancel()
終止一個運行中的任務。
job.cancel();
看完上述內容,是不是對Node.js中node-schedule模塊的使用方法有進一步的了解,如果還想學習更多內容,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。