简体   繁体   中英

ExpressJS: run a function every 24 hours

What's the easiest way to run an automated function every 24 hours in ExpressJS?

I have searched everywhere for a solution aside from running an infinite loop. Is this in principle the only way to do it?

you need to use node-cron npm

var cron = require('node-cron');


cron.schedule('0 0 * * *', () => {
  console.log('running a task every day');
});

get other cron formula: https://crontab.guru/examples.html

In Javascript, you use setTimeout() and setInterval() to schedule something to run a specific amount of time into the future (details here ). setTimeout() will run it once at the specific time interval from now. setInterval() will run it over and over again at that particular time interval.

If this is a server that's running constantly, you can just use setInterval() .

setInterval(myFunction, 1000 * 60 * 60 * 24);

This will call your function myFunction every 24 hours.

There are also various chron packages such as node-schedule you can find on NPM that have more sophisticated scheduling tools (run it every other day and twice on Mondays) and can offer persistence so scheduling is remembered across a server restart.

For example, I have a home automation server running on a raspberry Pi that uses a setInterval() to run some log management code once a day.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM