JavaScript - node + express(MQTT・定時処理)- 定時・定周期


クラウディア 


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」軍曹を参考にさせていただきました。

EaseUS
AbemaTV 無料体験