node專案中怎麼使用Node Schedule建立定時任務
node專案中怎麼建立定時任務?以下這篇文章為大家介紹一下在node專案中怎麼使用Node Schedule制定定時任務腳本,希望對大家有幫助!
nodejs的後端也是需要定時任務做處理,例如備份,定時發送郵件,結算等操作,所以使用了Node Schedule這個npm幫助我們制定定時任務腳本。
npm install node-schedule
Node Schedule 中的每個定時任務都由一個Job
物件表示。可以手動創建,然後執行schedule()
方法以應用任務,或使用scheduleJob()
如下。
Job
物件是`EventEmitter,並發出以下事件:
-
run
每次執行後的事件。 -
scheduled
每次計畫執行時的事件。 - 一
canceled
,當它在執行之前呼叫被取消的事件。 - 一個
error
當被觸發調度作業呼叫拋出或退出事件拒絕Promise
。
(scheduled
和canceled
事件都會接收一個 JavaScript 日期物件作為參數)。
注意的是,任務是第一次立即執行的,因此如果使用scheduleJob()
方法建立任務,將錯過第一個scheduled
事件觸發,但您可以手動查詢調用。
Cron格式
* * * * * * ┬ ┬ ┬ ┬ ┬ ┬ │ │ │ │ │ │ │ │ │ │ │ └ day of week (0 - 7) (0 or 7 is Sun) │ │ │ │ └───── month (1 - 12) │ │ │ └────────── day of month (1 - 31) │ │ └─────────────── hour (0 - 23) │ └──────────────────── minute (0 - 59) └───────────────────────── second (0 - 59, OPTIONAL) 每分钟的第30秒触发: '30 * * * * *' 每小时的1分30秒触发 :'30 1 * * * *' 每天的凌晨1点1分30秒触发 :'30 1 1 * * *' 每月的1日1点1分30秒触发 :'30 1 1 1 * *' 2016年的1月1日1点1分30秒触发 :'30 1 1 1 2016 *' 每周1的1点1分30秒触发 :'30 1 1 * * 1'
這裡是個人對node-schedule封裝類別來使用增刪改查定時任務
const schedule = require('node-schedule'); exports.Interval = class Interval { constructor({ unit_name, maintain_time, last_alarm }) { this.unit_name = unit_name // 任务名字 this.maintain_time = maintain_time // 定时时间 this.last_alarm = last_alarm || "" // 上一次定时任务名字 } // 生成新的定时任务 async create(callback) { // 终止之前的定时任务 if (this.last_alarm !== "") { this.delete(this.last_alarm) } schedule.scheduleJob(`${this.unit_name}`, `${this.maintain_time}`, callback); } // 删除定时任务 delete() { if (schedule.scheduledJobs[this.unit_name]) { schedule.scheduledJobs[this.unit_name].cancel(); return true } return false } // 找到一个定时任务 findOne(name) { if (schedule.scheduledJobs[name]) { return schedule.scheduledJobs[name] } else { throw new Error("未找到任务名") } } // 查看所有的定时任务 findAll() { return schedule.scheduledJobs } }
這裡是呼叫時定時任務Interval實例
// 定时任务 new Util.Interval({ unit_name: '自动分发任务 0 0 12 * * *', maintain_time: '0 0 12 * * *', last_alarm: '自动分发任务 0 0 12 * * *' }).create(async () => { // 写入你自己想在定时任务触发的时候,想要执行的函数 })
更多node相關知識,請造訪:nodejs 教學! !
以上是node專案中怎麼使用Node Schedule建立定時任務的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

crontab定時任務不執行的一些緣由總結更新時間:2019年01月09日09:34:57作者:田野上的希望這篇文章主要給你們總結介紹了關於crontab定時任務不執行的一些緣由,對每種可能發生的誘因都給出了解決方式,對遇見這個問題的同事們具有一定的參考學習價值,須要的同學們下邊隨著小編來一起學習學習吧序言近來在工作中遇見了一些問題, crontab定時任務竟然不執行,後來我在網上找的時侯發覺網上主要說了這5個誘因:1crond服務未啟動crontab不是Linux內核的功能,而是依賴一個cron

怎麼處理文件上傳?以下這篇文章為大家介紹一下node專案中如何使用express來處理文件的上傳,希望對大家有幫助!

ThinkPHP6定時任務排程:定時執行任務一、簡介在Web應用程式開發過程中,常會遇到需要定期執行某些重複性任務的情況。 ThinkPHP6提供了強大的定時任務排程功能,能夠輕鬆實現定時執行任務的需求。本文將介紹如何在ThinkPHP6中使用定時任務調度,以及提供一些程式碼範例幫助理解。二、設定定時任務建立定時任務檔案在專案的app目錄下建立一個comman

在Web開發中,許多網站和應用程式需要定期執行一些任務,例如清理垃圾資料、發送郵件等。為了自動化這些任務,開發人員需要實現任務排程和定時任務的功能。本文將介紹PHP如何實現任務調度和定時任務,以及一些常用的第三方函式庫和工具。一、任務調度任務調度是指依照規定的時間或事件來執行某些任務。在PHP中,實作任務調度可以使用cron定時器或類似的機制。通常情況下,任務調度

這篇文章跟大家分享Node的進程管理工具“pm2”,聊聊為什麼需要pm2、安裝和使用pm2的方法,希望對大家有幫助!

PiNetwork節點詳解及安裝指南本文將詳細介紹PiNetwork生態系統中的關鍵角色——Pi節點,並提供安裝和配置的完整步驟。 Pi節點在PiNetwork區塊鏈測試網推出後,成為眾多先鋒積極參與測試的重要環節,為即將到來的主網發布做準備。如果您還不了解PiNetwork,請參考Pi幣是什麼?上市價格多少? Pi用途、挖礦及安全性分析。什麼是PiNetwork? PiNetwork項目始於2019年,擁有其專屬加密貨幣Pi幣。該項目旨在創建一個人人可參與

Python實現無頭瀏覽器擷取應用的頁面自動刷新與定時任務功能解析隨著網路的快速發展和應用的普及,網頁資料的擷取變得越來越重要。而無頭瀏覽器則是收集網頁資料的有效工具之一。本文將介紹如何使用Python實作無頭瀏覽器的頁面自動刷新和定時任務功能。無頭瀏覽器採用的是無圖形介面的瀏覽器操作模式,能夠以自動化的方式模擬人類的操作行為,從而實現訪問網頁、點擊按鈕、填

如何在FastAPI中使用定時任務來執行後台工作隨著互聯網應用的快速發展,許多應用中都存在一些後台任務需要定期執行,例如資料清理、郵件發送、備份等。為了解決這個問題,我們可以使用定時任務來實現後台工作的自動執行。在本文中,將介紹如何在FastAPI框架中使用定時任務來執行後台工作。 FastAPI是一個現代、快速(高效能)的Web框架,主要用來建構API。它具
