||New Reviews| |Software Methodologies| |Popular Science| |AI/Machine Learning| |Programming| |Java| |Linux/Open Source| |XML| |Software Tools| |Other| |Web| |Tutorials| |All By Date| |All By Title| |Resources| |About||
Keywords: Java, J2EE, batch processing, job scheduling, cron
Title: Quartz Job Scheduling Framework
Author: Chuck Cavaness
Publisher: Addison Wesley
Level: Intermediate Java
Verdict: Highly recommended
For developers of a certain age, the mere mention of the phrase 'batch processing' brings to mind big iron mainframes, job control language (JCL), jobs and job steps and batch over-runs and? You get the picture. The mainframe history shouldn't obscure the fact that batch processing is a pretty useful feature to have on any platform. Furthermore the batch features of many operating systems (cron and at, for example) simply do not match up to the complex functionality that a dedicated batch processing facility provides. For enterprise developers looking for something more powerful, flexible and open source, then the Quartz job scheduling framework is one solution that should be investigated.
Coded in Java, the Quartz framework provides a complete batch processing environment, including scheduling, a job control language (modelled on the cron expression format), clustering, triggers, persistence and much more. And, for those who want to get the most out of it, Chuck Cavaness has provided a tutorial and cookbook in the form of his 'Quartz Job Scheduling Framework: Building Open Source Enterprise Applications'.
The opening chapter of the book provides the context, outlining a number of typical job scheduling scenarios as well as describing some of the alternatives to using Quartz (such as hacking together a home-grown solution from standard Java packages). This leads nicely to a very fast introduction to Quartz. A very simple 'Hello world' example application is developed in chapter three, providing a basic tutorial that begins to show how the framework hangs together.
The more detailed work begins in chapter four, and from then on the material becomes more focused on specific topics. For example job stores and persistence are covered in chapter six, while extensions and plug-ins are covered in chapters seven and eight. Of course a framework like Quartz doesn't exist in isolation, and the book looks at it in relation to J2EE, as well as how it can be used in distributed environments.
The relationship between Quartz and web applications also warrants a chapter, as does the topic of workflow, particularly the OSWorkflow open source project.
The scores highly on the writing side, in addition to the technical content. The writing is clear and easy to read and follow. There's good use of code samples and the examples in the book do a good job of illustrating the point of the text. Some technical books are just not good reading, no matter how good the technical content, but this is one book that rates highly on both points.
If you're interested in learning about Quartz, or about to implement an application that makes use of it, then this is definitely a book that is highly recommended.