遇到個需求要定時清理某個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 目標目錄下的當天日期...