On the Zend Developer Zone today, there's a new article by Dotan Perry and Shie Erlich talking about what kind of scalability and responsiveness that the Zend Platform's Job Queue functionality has to offer.
The Zend Platform Job Queue is used to make applications more responsive by allowing tasks to be performed on other machines (e.g.: dedicated machine), and scheduling tasks to a future time (usually to low-traffic hours). [...] Job Queue offers both a web-based management UI, and a programmer-oriented rich API, which allows embedding sophisticated logic into applications. This article will demonstrate basic usage of Job Queue, through an imaginary company wesellalot.com.
They start by presenting a scenario where a simple cluster of machines behind a load balancer all work with the same database. Because of some of the tasks they want to perform, things could get overloaded very easily under a high load. Enter the Job Queue and their four step process to integrate it into this setup:
- Step 1: Off Load to a Dedicated Server
- Step 2: Scheduling to low-traffic hours
- Step 3: Breaking down tasks using dependencies
- Step 4: A recurring cleanup job
They also include an explanation as to why this method is preferable over just using croned scripts for the same purpose.