最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用node-cron實現(xiàn)Node.js定時任務(wù)方式

 更新時間:2025年10月25日 13:48:53   作者:結(jié)城  
node-cron是一個輕量級的Node.js庫,用于在指定時間或間隔執(zhí)行任務(wù),它支持Cron表達(dá)式,適用于定時任務(wù)場景,文章還介紹了基礎(chǔ)用法、高級功能、實際應(yīng)用示例以及注意事項

1. 簡介

node-cron 是一個輕量級的Node.js庫,用于在指定時間或間隔執(zhí)行任務(wù)。

它是Unix系統(tǒng)cron工具的JavaScript實現(xiàn),適用于需要定時執(zhí)行腳本的場景(如數(shù)據(jù)備份、定期爬蟲等)。

2. 安裝

npm install node-cron
# 或
yarn add node-cron

3. 基礎(chǔ)用法

import cron from 'node-cron';

// 每分鐘執(zhí)行
cron.schedule('* * * * *', () => {
  console.log('每分鐘觸發(fā)');
});

4. Cron表達(dá)式詳解

表達(dá)式由5個字段組成:

*    *    *    *    *
┬    ┬    ┬    ┬    ┬
│    │    │    │    │
│    │    │    │    └── 星期幾 (0 - 7) (0和7代表周日)
│    │    │    └────── 月份 (1 - 12)
│    │    └────────── 日期 (1 - 31)
│    └────────────── 小時 (0 - 23)
└─────────────────── 分鐘 (0 - 59)

常用示例:

表達(dá)式說明
*/5 * * * *每5分鐘
0 * * * *每小時整點
0 0 * * *每天午夜
0 9 * * 1-5工作日早上9點
30 3 15 * *每月15日凌晨3:30

5. 高級功能

5.1 帶參數(shù)配置

const task = cron.schedule('*/10 * * * *', () => {
  console.log('每10分鐘執(zhí)行');
}, {
  scheduled: true,       // 是否立即啟動
  timezone: 'Asia/Shanghai' // 時區(qū)設(shè)置
});

5.2 任務(wù)控制

// 暫停任務(wù)
task.stop();

// 恢復(fù)任務(wù)
task.start();

// 檢查任務(wù)狀態(tài)
console.log(task.getStatus()); // 返回 'running' 或 'stopped'

6. 實際應(yīng)用示例

示例1:每日數(shù)據(jù)清理

import cron from 'node-cron';
import cleanupDatabase from './cleanup.js';

// 每天凌晨3點清理
cron.schedule('0 3 * * *', () => {
  console.log('開始數(shù)據(jù)庫清理...');
  cleanupDatabase();
});

示例2:API定時請求

import axios from 'axios';

// 每30分鐘獲取天氣數(shù)據(jù)
cron.schedule('*/30 * * * *', async () => {
  const res = await axios.get('https://api.weather.com/data');
  console.log('天氣數(shù)據(jù):', res.data);
});

7. 注意事項

  1. 精度問題:Node.js事件循環(huán)可能導(dǎo)致最多幾毫秒的延遲
  2. 錯誤處理:務(wù)必在任務(wù)函數(shù)中添加try/catch
  3. 長任務(wù):避免任務(wù)執(zhí)行時間超過間隔時間
  4. 集群環(huán)境:在多進(jìn)程部署時需要額外處理防止重復(fù)執(zhí)行

8. 替代方案

  • node-schedule:更復(fù)雜的調(diào)度規(guī)則
  • bull:分布式任務(wù)隊列
  • 系統(tǒng)級cron:通過child_process調(diào)用

提示:在生產(chǎn)環(huán)境中建議添加日志記錄和監(jiān)控,可以使用winstonbunyan記錄任務(wù)執(zhí)行情況。

參考資料:

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • nvm對Node.js進(jìn)行版本控制的實現(xiàn)

    nvm對Node.js進(jìn)行版本控制的實現(xiàn)

    本文主要介紹了用nvm來管理Node.js版本,通過nvm用戶可以輕松地在不同版本的Node.js之間切換,具有一定的參考價值,感興趣的可以了解一下
    2024-12-12
  • Node獲取pnpm安裝的包源碼及代碼路徑操作

    Node獲取pnpm安裝的包源碼及代碼路徑操作

    這篇文章主要為大家介紹了Node如何獲取pnpm安裝的包源碼真實代碼路徑并操作,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08
  • node.js中的favicon.ico請求問題處理

    node.js中的favicon.ico請求問題處理

    本文記錄了在項目中使用node.js請求favican.ico的時候會出現(xiàn)2條請求,浪費資源,經(jīng)過一番改進(jìn),記錄下來過程,以后注意。
    2014-12-12
  • Node.js匹配文件夾所有文件關(guān)鍵字的完整教程

    Node.js匹配文件夾所有文件關(guān)鍵字的完整教程

    本文基于nodejs構(gòu)建一個自動化檢測工具:讀取 Excel 中的關(guān)鍵字,在指定目錄的所有文件中搜索是否存在對應(yīng)內(nèi)容,最終生成帶標(biāo)記結(jié)果的 Excel 文件,需要的朋友可以參考下
    2025-04-04
  • 一文詳解nodejs的path模塊使用

    一文詳解nodejs的path模塊使用

    這篇文章主要為大家介紹了nodejs的path模塊使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-11-11
  • NodeJS 創(chuàng)建目錄和文件的方法實例分析

    NodeJS 創(chuàng)建目錄和文件的方法實例分析

    這篇文章主要介紹了NodeJS 創(chuàng)建目錄和文件的方法,涉及node.js中fs模塊mkdir、writeFile及目錄判斷existsSync等方法的功能與相關(guān)使用技巧,需要的朋友可以參考下
    2023-04-04
  • nodejs爬蟲初試superagent和cheerio

    nodejs爬蟲初試superagent和cheerio

    這篇文章主要介紹了nodejs爬蟲初試superagent和cheerio的相關(guān)知識,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2018-03-03
  • node.js在Linux下執(zhí)行shell命令、.sh腳本的問題

    node.js在Linux下執(zhí)行shell命令、.sh腳本的問題

    很多時候需要多個命令來完成一項工作,而這個工作又常常是重復(fù)的,這個時候我們自然會想到將這些命令寫成sh腳本,下次執(zhí)行下這個腳本一切就都搞定了,下面就是發(fā)布代碼的一個腳本示例
    2022-01-01
  • Node.js筆記之process模塊解讀

    Node.js筆記之process模塊解讀

    這篇文章主要介紹了Node.js process模塊解讀,process存在于全局對象上,不需要使用require()加載即可使用,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-05-05
  • xtemplate node.js 的使用方法實例解析

    xtemplate node.js 的使用方法實例解析

    這篇文章主要介紹了xtemplate node.js 的使用方法實例說明,非常不錯,介紹的非常詳細(xì),具有參考借鑒價值,需要的朋友可以參考下
    2016-08-08

最新評論

沂水县| 右玉县| 洛川县| 定州市| 浮山县| 龙口市| 府谷县| 尼木县| 彰武县| 乌兰察布市| 蓝田县| 曲周县| 务川| 高雄县| 瓦房店市| 阜平县| 班玛县| 贵南县| 建水县| 繁昌县| 阿拉善右旗| 新兴县| 巨野县| 烟台市| 阿克| 沐川县| 西乡县| 栖霞市| 武胜县| 东至县| 克拉玛依市| 阿城市| 聂荣县| 安平县| 南皮县| 清丰县| 阿坝| 隆子县| 军事| 辉县市| 宜君县|