Every web application needs a queue to handle background jobs. Background jobs are simply that — jobs that run in the background, outside of the main web response loop.
Great effort goes into making web page response as fast as possible, which means getting data to the screen, completing the request, and returning control to the user. Background jobs are created to handle tasks that take time to complete or that aren’t critical to displaying results on the screen.
Jobs that run on a schedule are also considered background tasks. Also known as Cron jobs, scheduled jobs often get queued up to run on the same machine doing the tasking or on the local network, primarily because creating a truly distributed background queue is a complicated process.
Cloud computing greatly streamlines the process so that Cron jobs can run on servers far removed from the ones responding to web requests. Workers for the scheduled jobs can still be developed in the application code, but queued up from the application or from outside scripts to run in the cloud. (Which brings up the point that background queues are not only the logic to create the queue but also the servers to run the jobs on. SimpleWorker combines both — a full-featured queuing framework and industrial-strength servers — to make running background jobs as simple as possible.)