- 1. 概要
- 2. インストール
- 3. 定時処理
- 4. 定周期処理
- 5. 参考サイト
1. 概要
稼働中の「node + express」に、定時処理・定周期処理を処理を組み込む方法について記述します。
2. インストール
プロジェクトの管理者権限で、プロジェクトのドキュメントルートで。
npm install node-cron
added 1 package, and audited 149 packages in 4s
26 packages are looking for funding
run `npm fund` for details
found 0 vulnerabilities
3. 定時処理
定時処理を組み込むには、例えば、ソースに下記のような処理を組み込みます。
const express = require('express');
const cron = require('node-cron');
const winston = require('winston');
cron.schedule('0 1 * * *', async () => {
logger.info("定時処理開始");
... 処理 ...
logger.info("定時処理完了");
});
「cron.schedule」の「0 1 * * *」の箇所は、「minute」「hour」「mday」「month」「wday」に相当します。
「0 1 * * *」であれば、毎日 01:00 に定時処理を実行することになります。
最小単位は、「* * * * *」で、この場合、毎分 0 秒に起動します。
数百ミリのずれが生じたりするのは仕方ないですね。
4. 定周期処理
定周期処理を組み込むには、例えば、ソースに下記のような処理を組み込みます。
setInterval(() => {
console.log("5分おきに実行");
... 処理 ...
}, 5 * 60 * 1000);
つまり。
setInterval(() => { ... 処理 ... }, 5 * 60 * 1000);
の後ろに書いている、値はミリ秒単位で。
その周期で処理を実行することになります。
ただし、前項の「cron」の処理は、精密ですが、こちらはそこまでの精度はないそうです。
5. 参考サイト
本ページは、「ChatGPT」軍曹を参考にさせていただきました。
|
|