Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

181
Views
Node Express server terminates eight hours after inactivity

I have written a small backend application with Node Express. Its purpose is to retrieve data from a MySQL database and send the resulting rows as a JSON-formatted string back to the requesting client.

app.get(`${baseUrl}/data`, (req, res) => {
    console.log("Get data");
    getDataFromDatabase((error, data) => {
        if (error) {
             return res.json({status: CODE_ERROR, content: error});
        }
        else {
            return res.json({status: CODE_SUCCESS, content: data});
        }
    });

});

Inside the getDataFromDatabase() method a simple SELECT statement is sent to the DB and it receives a status code plus content. In case of success, the content would be a JSON of returned rows, otherwise information about the MySQL error - again in JSON format.

Basically this code works fine. There are a few other methods which were built the same way but don't cause the following problem: After running this code on a server, I found that the process always dies exactly eight hours after the last call of the above method. The method can be called dozens of times, the problem occurs only after inactivity.

A quick and dirty workaround due to a lack of time was to simply create a cronjob which kills the process and re-run the application every six hours. However, the new process also gets killed eight hours after the last request has been sent in the last process.

While writing this question, I checked again for any differences between my methods. I found the following, here a snippet of getDataFromDatabase():

if (error) {
    callback(error, null);
}

However, a method getOtherDataFromDatabase() has got a return keyword before its callback:

if(!error) {
    return callback(null, data);
}

So, is the return keyword making a difference here? Is there some kind of unfinished asynchronous code which terminates after a timeout? I've got no exceptions in my console output, the process dies silently.

about 4 years ago · Juan Pablo Isaza
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!