Skip over navigation

Contact us to learn more about OroCommerce's capabilities

learn more

Product News & Updates

Optimize Back-End Processes with Job Queue

October 31, 2018 | Brandon Kim

What is Job Queue?

In a perfect world, your company would have unlimited resources and unlimited data processing capabilities. Jobs could be run at any time and would not depend on other processes. But you don’t function in a perfect world or a perfect company. Resources are limited. Applications must interact with each other and certain tasks must be performed in sequential order. That’s why jobs are queued. And the processing order of queued jobs must be determined and scheduled. A robust job scheduler gives maximum flexibility in ordering the queue.

Automating the Job Queue

Not all jobs are executed immediately. Some must be run at certain times of the day. Other jobs are dependent on completion of prerequisite jobs. You could have an intern sit and monitor all jobs at all times and decide the job priority, assess available resources and agents, and execute the job. But that would be a waste of a good intern. It makes more sense to automate the job queue. So you automate with a job scheduler. But the job scheduler you use will determine how efficiently your back-end utilizes resources.

Not All Job Schedulers are the Same

There are many reasons a job is queued instead of executed immediately. Say there aren’t currently enough resources available to run the job or other jobs have a higher priority, then its into the queue the job goes. Maybe the agent that runs the job has gone down. Step into the queue Mr. Job.

Very simple job schedulers just line up the jobs and execute them in the order they were submitted. FIFO (first in first out) meets scheduling. But this approach to queuing jobs might lead to overlooking important jobs or skipping them altogether so a less critical processes runs smoothly. An effective job scheduler makes good decisions to maximize your backend resources. FIFO might be fine for inventory, but it’s not always the best approach to job scheduling. An effective scheduler needs to consider:

Priority – this is the ultimate factor. Jobs should run in priority order, not the order submitted so that high priority jobs get priority treatment.

Power – this determines how much can run concurrently. Based on the priority of job, the scheduler should limit the number of jobs processed at any given time if you don’t have the processing power to run everything at one. Resources are allocated based on priority of processing.

Persistence – this keeps the queue in order if assets go down or aren’t available. If equipment or agents go down, the queue should make sure they aren’t missed when the system or network is operational again.

Benefits of a Robust Scheduler

A powerful job scheduler makes the best use of computer resources when they must be shared by multiple humans and jobs.

When priorities change, the scheduler should allow jobs to change accordingly. A job may have a higher priority as a deadline approaches. For example, if a job must be completed by 4:30 p.m., it may have a lower priority at 6:00 a.m. than 2:00 p.m. A robust scheduler automates minute-by-minute supervision and the intern can focus on more important things (like the afternoon Red Bull run).

Priority gating can shift the time jobs process to hours when resources aren’t as busy. For example, if the humans have a 2:00 p.m. deadline for transaction submissions, there will be peak of activity just before 2:00 p.m.  However, these processes may not need to run immediately. The job scheduler can assign them to run at 10:00 p.m. when more resources are available and the job will be complete by the time the humans return in the morning. So, the priority gate comes down and moves these lower value but high volume transactions further down the queue. Computing resources are expensive, and a scheduler with an intelligent queue makes round-the-clock use of these scarce, high-value resources.

Full use of resources can be achieved if the scheduler knows the maximum number of jobs that can process at a time. For example, if a database only allows a dozen connections at any time, the scheduler can monitor the number of connections to the database and release a new job as soon as another job is complete.

Event-driven scheduling by an intelligent scheduler is also more efficient. If one job’s completion automatically triggers another job, you delete downtime. And downtime is a waste of time and money.

Powerful OroCommerce Job Queue Scales With You

As your company grows, the amount of data you process and the number of jobs you must process grows with you. Fortunately, OroCommerce comes with Job Queue capabilities right out-of-the-box. These are critical for mid-market to enterprise companies setting up their B2B eCommerce store. When researching different platforms, don’t forget to compare solutions for scalability. You need a solution that scales to the demands of enterprise volume and usage. And a job queue is essential for the platform. Schedule a demonstration to learn more about how OroCommerce scales with you.

Back to top