View all tutorials

[Part 2] Executing batch jobs in a multi-container environment using NodeJS and express

July 23, 2025
Mohammed Ali Chherawalla
[Part 2] Executing batch jobs in a multi-container environment using NodeJS and express

This is the second tutorial in a 3-Part series. If you haven’t completed the first tutorial 1, I would recommend going through it first here.

Create a CRON job to be executed at 12 am every day

In this step, we will register a CRON job that executes at 12 am every day. This CRON job will simply console log the time of execution and a static message.

Step 1

Add a new QUEUE_NAME called MIDNIGHT_CRON



export const QUEUE_NAMES = {
SCHEDULE_JOB: 'scheduleJob',
MIDNIGHT_CRON: 'midnightCron'
};

Step 2

Add a new processor for CRON



const CRON_EXPRESSIONS = {
MIDNIGHT: '0 0 * * *'
};

export const QUEUE_PROCESSORS = {
...,
[QUEUE_NAMES.MIDNIGHT_CRON]: (job, done) => {
console.log({ job, done });
console.log(`${moment()}::The MIDNIGHT_CRON is being executed at 12:00am`);
done();
}
};

Step 3

Register the CRON job in the server/utils/queue.js



export const initQueues = () => {
...
queues[QUEUE_NAMES.MIDNIGHT_CRON].add({}, { repeat: { cron: CRON_EXPRESSIONS.MIDNIGHT } });
};

We will invoke the initQueues method from the server/index.js to initialize the queues on startup. After initializing the queues we will add a CRON job to be executed at 12 am.

You should see the below logs at 12 am!

🚀Feel free to update the regex and execute the CRON sooner than 12 am to test how it works.

Commit your code using the following git commands



git add .
git commit -m 'Add support to run a CRON job at 12 AM everyday'

Loved the tutorial? There's more where that came from at LeadReads. Join top C Execs in gaining exclusive insights and real-world digital product stories.

Join here.

Where to go from here

You now have the ability to set up CRON jobs in a multi-container environment.

I hope you enjoyed reading this article as much as I enjoyed writing it. If this piqued your interest stay tuned for the next article in the series where I will take you through how to write GraphQL subscriptions in a multi-container environment using  graphql-redis-subscriptions

If you have any questions or comments, please join the forum discussion on Twitter.

New!

The High-Velocity Startup Playbook

(Free 3-Day Email Course)

Find PMF faster with AI-native sprints, leaner teams, and 3x more experiments, before your runway runs out, using AI-powered product engineering.

From the team behind 10% of India's unicorns.

No theory. Just moves that unlock fit sooner.