Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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?

like image 258
Unconventional Wisdom Avatar asked Aug 24 '26 23:08

Unconventional Wisdom


2 Answers

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

like image 188
Saurabh Mistry Avatar answered Aug 28 '26 05:08

Saurabh Mistry


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.

like image 36
jfriend00 Avatar answered Aug 28 '26 07:08

jfriend00



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!