Executing a function in ExpressJS at regular intervals of 24 hours

Can someone share the most effective method to schedule an automated task every 24 hours in ExpressJS?

I have thoroughly researched possible solutions but haven't found any option other than using an infinite loop. Is there only one way to achieve this?

Answer №1

If you're looking to schedule tasks in Node.js, try using the node-cron npm package.

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

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

For more examples of cron formulas, check out:

Answer №2

To schedule tasks in JavaScript, the setTimeout() and setInterval() functions are used to run code at specific times in the future (more information available here). With setTimeout(), the code will execute once after a specified time interval. The setInterval() function will repeatedly execute the code at the specified interval.

If you have a server running continuously, simply using setInterval() is sufficient.

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

This line of code will call the function myFunction every 24 hours.

In addition to these basic functions, there are more advanced scheduling tools such as those found in packages like node-schedule on NPM. These tools offer features like complex scheduling patterns (e.g., running every other day and twice on Mondays) and persistence across server restarts.

For instance, I use a setInterval() in my home automation server running on a Raspberry Pi to handle log management tasks once a day.

Similar questions

If you have not found the answer to your question or you are interested in this topic, then look at other similar questions below or use the search

Should we enable client-side validation and unobtrusive JavaScript in the Web.config file?

I'm currently working on an ASP MVC application, where all form and UI code is written in AngularJS for validation purposes. I didn't use any HTML helpers. Do I need to include the entries ClientValidationEnabled and UnobtrusiveJavaScriptEnabled ...

Validate selected checkbox using JavaScript

Is there a way for me to achieve real-time updates when checking and unchecking multiple checkboxes in a list? Here's the code snippet I currently have: window.onload = function () { var input = document.getElementById('listTaxi'); fu ...

When can you determine if all the ajax requests in a JQuery each loop have finished?

Within my JQuery each loop, I am triggering multiple ajax requests and looking to display a success message once all calls have been completed. Here is my code snippet: $('.container input:checked').each(function() { json_data = $(this).paren ...

Creating a Controlled accordion in Material-UI that mimics the functionality of a Basic accordion

I'm a Junior developer seeking assistance with my first question on this platform. Currently, I am working with a Controlled accordion in React and need the icon to change dynamically while staying open even after expanding another panel. The logic ...

Is there a way to redirect links within an iframe when a user decides to open them in a new tab?

I am currently developing a web application that allows users to access multiple services, such as Spark and others. When a user selects a service, like Spark for example, the app will open a new tab displaying my page (service.html) with user information ...

Encountering RangeError with the Number() function on my express.js server

I'm working with an HTML form that looks like this: <form class="" action="/" method="post"> <input type="text" name="num1" placeholder="First Number"> <input type= ...

Language setting required for dijit.form.DateTextBox

I am attempting to create a calendar control dynamically using Dojo 1.5 and set the language to Spanish, but so far I have been unsuccessful. I tried using "lang:es-es" among other things with no success... here is the element: <input type="text" const ...

Is there a way to save modifications made to an array that has been imported in

Within my data.js file, there exists a large object array as well as a couple of essential functions. var arr = [ {prop1: value, prop2: value},...] function push (value) { arr.push(value); } function pop () { arr.pop() } module.exports.data = a ...

Display notification following successful data saving in CodeIgniter

I attempted to set up a notification to appear when saving data and displaying it in the view, but it didn't work as expected using notify.js. Can someone offer some assistance? This is my save function: function save() { $data = array( ...

Configuring Multer destination dynamically using FormData values in Node.js

I have a scenario where I need to send a file along with some data values using an XMLHttpRequest (xhr) to a Node.js server running Express. To handle multipart data, I am utilizing Multer as bodyParser does not work in this case. router.post("/submit", f ...

What is the best method to incorporate extra parameters into highcharts using data extracted from datatables?

I have a query regarding the integration of datatables with highcharts. The issue I'm facing is related to specific configurations for chart-A, which is of column type. Even after applying the configurations, it seems like they are not being incorpora ...

Ways to match a string against a numeric value

I have a span id with textContent which have their own time(hour/minutes) <div class="here"> <span class="time" >8 min</span> </div> <div class="here"> <span class="time" >22 min&l ...

Retrieving information within the iteration

I am facing an issue with connecting to an external server named Pexels in order to retrieve photos from node.js. The problem seems to be related to JavaScript, as Pexels limits the user to download up to 40 pictures per page. https://api.pexels.com/v1/cu ...

What causes identical request headers to result in receiving different Ajax content?

Whenever I access the website for a journal called Applied Physics Letters at "", I notice that there are multiple AJAX fields on the page. Each time I click "show abstract", the abstract for the corresponding article is displayed. By using "inspect elemen ...

Leverage a JavaScript function to manipulate the behavior of the browser's back button

Is there a way to trigger the Javascript function "backPrev(-1)" when the back button of the browser is clicked? Appreciate any help, thank you. ...

When trying to bind an object that is constantly changing, one-way binding may not effectively capture those dynamic modifications

For a detailed review of the code, please check out the plnkr. I am quite new to AngularJS components. I have created two simple AngularJS components with the exact same bindings: bindings: { value:'@', field:'@', object: '<&a ...

Troubleshooting the inefficiency of the nightwatch selector for xpath

Currently, I am in the process of developing a node/express.js application and writing e2e tests in nightwatch. While working on these tests, I encountered an issue when trying to locate elements using XPath strategy. Here are some examples of successful e ...

Begin composing in Excel

I am looking to manipulate an existing Excel file by writing values from an array and closing it all on the client side. Here is the code snippet I have been using: for (var c=0; c<arrMCN.length; c++) { var mcnCreate = arrMCN[c]; var mcnNumber =mcnCre ...

The declaration file for the module 'bootstrap/dist/js/bootstrap' could not be located

Currently, I am developing a Next.js application and have integrated Bootstrap for styling. However, I am encountering an error when trying to import the bootstrap.bundle.js file. I am facing the following error message: Could not find a declaration file f ...

The Angular 2 http request for a POST method is not initiating

Utilizing Angular 2, I have successfully implemented a get request function. However, when attempting to make a post request, I am unable to detect any sign of the request in the Firebug Net panel. The code for these methods is as follows. Furthermore, th ...