If each node had an hourly cron script (either just a process which sleeps or a Quartz driven thread), which then wakes up to get a lock from Zookeeper, then I'd need also to store a "next run on" date in Zookeeper so that we don't run too often. So then I'd need a lock plus a date property in Zookeeper, protected by that lock.
On the other hand, one node could be elected leader through zookeeper, then run jobs as needed. All jobs would always run on one node until it lost an election.
Am I going about this the right way? Is there a library for Quartz-Zookeeper? Or some other best practices for this type of use.