Piezo and Quartz: a match made in heaven
Eliza Wright
Reading time: about 3 min
Topics:
-G. Bonner & A. Gordon, “Happy Together”
What’s Missing from Quartz
If you need scheduled tasks on the JVM, Quartz by Terracotta is the standard solution. It has one responsibility that it does well: reliably executing jobs on a defined schedule. Unfortunately, every time you use Quartz, you have to write your own:
-
Java main()
-
Shutdown handler
-
Monitoring & stat tracking
-
Configuration management
If you have run Quartz for a while you have probably realized you need a more robust administration of the cluster. Taking a phone call at 10 pm so you can make changes to a schedule? Sending someone MySQL credentials so they can view the list of schedule jobs? It’s neither fun nor sustainable. Viewing jobs, histories, and scheduled triggers requires a friendlier interface.
Patching it with Piezo
I decided to solve these problems with Piezo, an complete open source job processing solution for Quartz. It provides all of the boilerplate code, plus a bunch of cool admin tools for your Quartz job scheduler.
Use the 5 setup steps on github to be up and running with a Piezo job system in 5 minutes!
Piezo comes with two main components:
1) Piezo Worker - a Java main() driver for a Quartz scheduler, and
2) Piezo Admin - an easy web interface for viewing, adding, editing, and deleting jobs.
The components can be used independently or together to complete your job scheduling solution.
Piezo Worker
Java main()
The Piezo Worker gives you an easy way to run a job scheduler. It’s a Java main() class that lets you easily run a Quartz scheduler instance. It includes a convenient shutdown hook on the SIGINT signal (ctrl-c).
It even provides a default startup script for you to use:
./worker/src/main/resources/run.sh
Job history
One of the major features missing from the Quartz scheduler, even when using a persistent job store, is its lack of historical data about jobs. Piezo extends the standard set of tables in the JDBCJobStore and tracks the start time, stop time, and exit status of every job run by every trigger.
Piezo Admin
Piezo Admin provides a clean, friendly web interface with reactive design for viewing on any device. It is built on the Play Framework with Twitter Bootstrap.
Jobs
See a list of jobs organized by group, details for a job, and a history of when the job was run. The user can also add, edit, and remove jobs from the data store.
Triggers
Triggers can be similarly listed, viewed, and modified.
Try it out
Use the 5 setup steps on github and play with it yourself. The tool is actively supported so let me know of any issues or feature requests.
Related Information
About Lucid
Lucid Software is a pioneer and leader in visual collaboration dedicated to helping teams build the future. With its products—Lucidchart, Lucidspark, and Lucidscale—teams are supported from ideation to execution and are empowered to align around a shared vision, clarify complexity, and collaborate visually, no matter where they are. Lucid is proud to serve top businesses around the world, including customers such as Google, GE, and NBC Universal, and 99% of the Fortune 500. Lucid partners with industry leaders, including Google, Atlassian, and Microsoft. Since its founding, Lucid has received numerous awards for its products, business, and workplace culture. For more information, visit lucid.co.