Nodejs 定時執行 node cron

2021-08-31 07:07:59 字數 2042 閱讀 8165

遇到個需求要定時清理某個map, 乙個setinterval實現感覺太皮,肯定會翻車。所以去萬能的npm上去摸工具。搜尋一下schedule,出現乙個node-cron模組。看起來有很多人用,嗯….就用這個了。

npm 文件:

2.3 sample

npm install cron
測試code:

var cronjob =

require

('cron'

).cronjob;

newcronjob

('* * * * * *'

,function()

,null

,true

,'america/los_angeles'

);

constructor(crontime, ontick, oncomplete, start, timezone, context, runoninit, unreftimeout)
官方文件:

此模組中中cron有一定的差異,時間取值範圍,且有六個字段,其中1秒是最精細的粒度。:

秒:0-59

分鐘:0-59

小時:0-23

天:1-31

月份:0-11(1月至12月)

星期幾:0-6(週日至週六)

排列順序:

秒 分鐘 小時 天 月份 星期幾

*為萬用字元

-為時間段連線符

,號為分隔符,可以在某一節輸入多個值

/號為步進符

從1中例子可以看到*為通配 ,意思均滿足。

* * * * * *
意思為均通配,導致結果就是每秒都執行

比如要在每次分鐘時間為10的時候執行:

* 10 * * * *
執行結果是 每次分鐘為10的 那60秒 每秒都執行。

'10 03 * * * *'
執行結果為在秒為10 分鐘為3執行

'10 05 14 * * *'
執行結果為每天14點05分10秒時執行語句

'10 05 14-17 * * *'
執行結果為每天14-17點的05分10秒時執行語句。(-操作符支援選擇時間端)

'11,22,25 * * * * *'
執行結果為每分鐘的11 秒 22秒 25秒執行。(支援分隔)

我們可以使用萬用字元和/步進符實現間隔多長時間執行

*/3 * * * * *
間隔3秒執行

0 */2 * * * *
間隔兩分鐘執行

var cronjob =

require

('cron'

).cronjob;

newcronjob

('10 * * * * *'

,function()

,null

,true

);

輸出

2018-11-08t06:18:10.010z

2018-11-08t06:19:10.004z

var cronjob =

require

('cron'

).cronjob;

newcronjob

('*/10 * * * * *'

,function()

,null

,true

);

輸出

2018-11-08t06:19:30.008z

2018-11-08t06:19:40.001z

2018-11-08t06:19:50.001z

nodejs通過later實現定時執行任務

大多數情況我們都選用使用linux的cron來控制定時執行的任務。當我們要維護多台計算機,幾十個,幾百個定時任務的時候,用cron會帶來非常大的運維成本。可能寫到程式中,就是乙個不錯的選擇了。nodejs有乙個later的外掛程式可以簡單實現該功能。如果已經安裝過npm,可以直接執行npm inst...

定時執行任務

在windows上,使用configuration task scheduler 任務計畫程式 task scheduler library 任務計畫程式庫 create task.或者 control panel scheduled tasks add a scheduled task.在linu...

定時執行備份

centos 作業系統 1.編寫備份程式 2.使用crontab命令,定時執行備份程式 步驟一 編寫備份檔案bak.py coding utf 8 import os import time source root a.py 目標目錄 targetdir root backup 目標目錄下的當天日期...