點燈坊

失くすものさえない今が強くなるチャンスよ

使用 Node Cron 執行 Cron Jobs

Sam Xiao's Avatar 2021-10-24

實務上常會有獨立 Service 需要每幾分鐘或每小時執行特定工作,如呼叫 API 抓資料並寫進其他資料庫,在後端可使用 Node Cron 完成。

Version

Node 12.4.0
Node-cron 2.0.3

Add Package

$ yarn add node-cron
  • node-corn:安裝 node-cron 執行 cron jobs

Node-cron

import { schedule } from 'node-cron'

schedule('*/5 * * * *', () => console.log('yes'))

node-cron import 出 schedule()

 # ┌────────────── second (optional)
 # │ ┌──────────── minute
 # │ │ ┌────────── hour
 # │ │ │ ┌──────── day of month
 # │ │ │ │ ┌────── month
 # │ │ │ │ │ ┌──── day of week
 # │ │ │ │ │ │
 # │ │ │ │ │ │
 # * * * * * *

第一個 argument 可指定 shedule() 行為,若要每 5 分鐘執行一次,可採用 */5

第二個 argument 為 callback,傳入要執行 function。

Conclusion

  • Node Cron 非常簡單好用,尤其第二個 argument 為 callback,方便 Ramda 組合 function

Reference

node-cron, node-cron/node-cron