91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

node項目中如何使用Node Schedule創建定時任務

發布時間:2021-11-18 09:47:52 來源:億速云 閱讀:529 作者:小新 欄目:web開發

這篇文章主要介紹了node項目中如何使用Node Schedule創建定時任務,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

nodejs的后端也是需要定時任務做處理,例如備份,定時發送郵件,結算等操作,所以使用了Node Schedule這個npm幫助我們制定定時任務腳本。

npm install node-schedule

Node Schedule 中的每個定時任務都由一個Job對象表示。可以手動創建,然后執行schedule()方法以應用任務,或使用scheduleJob()如下。

Job對象是`EventEmitter,并發出以下事件:

  • run每次執行后的事件。

  • scheduled每次計劃運行時的事件。

  • canceled,當它在執行之前調用被取消的事件。

  • 一個error當被觸發調度作業調用拋出或退出事件拒絕Promise

scheduledcanceled事件都接收一個 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項目中如何使用Node Schedule創建定時任務”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

永定县| 蓝山县| 建阳市| 绥中县| 寿宁县| 江城| 新晃| 德庆县| 哈尔滨市| 鄂尔多斯市| 崇信县| 雷州市| 台北市| 鲁山县| 盐津县| 康保县| 双辽市| 闻喜县| 怀宁县| 三明市| 厦门市| 团风县| 牡丹江市| 北宁市| 藁城市| 巴彦淖尔市| 池州市| 成安县| 庄浪县| 皋兰县| 革吉县| 武宣县| 江都市| 延安市| 丹江口市| 道真| 兴国县| 永胜县| 阜平县| 康定县| 石嘴山市|