How to scale the Quartz scheduler?
I plan to use the Quartz scheduler as I read many good opinions about it.
My problem is as follows: I will have thousands of triggers living in the system at any given time. Most of the triggers will fire just one event and die. In addition, it is very likely I will have to cancel many jobs after their allocation (based on new input).
Can Quartz scale to this? Which JobStore is recommended? I planned to use the JDBC one over mysql.
Added Information: My jobs will either send an e-mail or post data via HTTP post to other services (over WAN).
There are some tips and recommendations in the FAQ:
How many jobs is Quartz capable of running?
An excerpt from the answer:
So let me just say, there are installments of Quartz out there that are managing hundreds-of-thousands of Jobs and Triggers, and that at any given moment in time are executing dozens of jobs – and this excludes using load-balancing.
There is also some discussion in the Quartz Users forum, with experience reports from developers who have used Quartz under similar conditions.
- Scalability & Performance - Jim Nichols is running a couple of thousand jobs clustered, and volunteers more information by e-mail
- Quartz performance - Stey Baptiste is running 2 million jobs a day, 10 jobs a second
Update 2015-01-12: Unfortunately, the links in the list above broke when the forum was moved, and I'm unable to find new working links. I'll leave the links anyway, in case they help digging out the info from archive.org or elsewhere. The official Quartz forum is now quartz-scheduler on Google Groups.