欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

1. 簡(jiǎn)介

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

它是Unix系統(tǒng)cron工具的JavaScript實(shí)現(xiàn),適用于需要定時(shí)執(zhí)行腳本的場(chǎng)景(如數(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個(gè)字段組成:

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

常用示例:

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

5. 高級(jí)功能

5.1 帶參數(shù)配置

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

5.2 任務(wù)控制

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

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

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

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

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

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

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

示例2:API定時(shí)請(qǐng)求

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. 注意事項(xiàng)

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

8. 替代方案

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

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

參考資料:

總結(jié)

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

相關(guān)文章

  • Node.js 數(shù)據(jù)庫(kù) CRUD 項(xiàng)目示例詳解(完美解決方案)

    Node.js 數(shù)據(jù)庫(kù) CRUD 項(xiàng)目示例詳解(完美解決方案)

    這篇文章主要介紹了Node.js 數(shù)據(jù)庫(kù) CRUD 項(xiàng)目示例詳解(完美解決方案),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2025-04-04
  • 修改npm全局安裝模式的路徑方法

    修改npm全局安裝模式的路徑方法

    今天小編就為大家分享一篇修改npm全局安裝模式的路徑方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧
    2018-05-05
  • 淺談HTTP 緩存的那些事兒

    淺談HTTP 緩存的那些事兒

    HTTP 緩存機(jī)制作為 Web 應(yīng)用性能優(yōu)化的重要手段,是想要成為前端架構(gòu)的必備技能。這篇文章主要介紹了淺談HTTP 緩存并用node實(shí)現(xiàn)緩存,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2018-10-10
  • node.js中的buffer.copy方法使用說(shuō)明

    node.js中的buffer.copy方法使用說(shuō)明

    這篇文章主要介紹了node.js中的buffer.copy方法使用說(shuō)明,本文介紹了buffer.copy的方法說(shuō)明、語(yǔ)法、接收參數(shù)、使用實(shí)例和實(shí)現(xiàn)源碼,需要的朋友可以參考下
    2014-12-12
  • Node.js成為Web應(yīng)用開發(fā)最佳選擇的原因

    Node.js成為Web應(yīng)用開發(fā)最佳選擇的原因

    本篇文章給大家詳細(xì)分析了Node.js 成為 Web 應(yīng)用開發(fā)最佳選擇的十個(gè)原因,對(duì)此有需要的朋友參考下。
    2018-02-02
  • 在NPM發(fā)布自己造的輪子的方法步驟

    在NPM發(fā)布自己造的輪子的方法步驟

    這篇文章主要介紹了在NPM發(fā)布自己造的輪子的方法步驟,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧
    2019-03-03
  • NVM安裝nodejs的方法實(shí)用步驟

    NVM安裝nodejs的方法實(shí)用步驟

    安裝node的方式有很多種,本文主要介紹了NVM安裝nodejs的方法實(shí)用步驟,希望能幫助大家來(lái)解決問題,感興趣的小伙伴們可以參考一下
    2019-01-01
  • node.js Promise對(duì)象的使用方法實(shí)例分析

    node.js Promise對(duì)象的使用方法實(shí)例分析

    這篇文章主要介紹了node.js Promise對(duì)象的使用方法,結(jié)合實(shí)例形式分析了node.js中Promise對(duì)象的功能、定義、調(diào)用方法及相關(guān)使用技巧,需要的朋友可以參考下
    2019-12-12
  • 利用Chrome DevTools直接調(diào)試Node.js和JavaScript的方法詳解(并行)

    利用Chrome DevTools直接調(diào)試Node.js和JavaScript的方法詳解(并行)

    現(xiàn)在我們可以用瀏覽器調(diào)試node.js了!!!下面這篇文章主要介紹了利用Chrome DevTools直接調(diào)試Node.js和JavaScript的方法步驟,文中介紹的很詳細(xì),需要的朋友可以參考學(xué)習(xí),下面來(lái)一起看看吧。
    2017-02-02
  • 基于Koa2寫個(gè)腳手架模擬接口服務(wù)的方法

    基于Koa2寫個(gè)腳手架模擬接口服務(wù)的方法

    這篇文章主要介紹了基于Koa2寫個(gè)腳手架模擬接口服務(wù)的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧
    2018-11-11

最新評(píng)論