1. 程式人生 > 程式設計 >Node.js設定定時任務之node-schedule模組的使用詳解

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支援設定的值有secondminutehourdatedayOfWeekmonthyear等。一些廠家的用法,如:

每秒執行

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模組的使用的文章就介紹到這了,更多相關Node.js設定定時任務:node-schedule模組的使用內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!