As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
If this question can be reworded to fit the rules in the help center, please edit the question.

If you're simply looking for a Java library that can schedule jobs to run at specific times (or specific intervals), then Quartz is an obvious choice. However, if you need sophisticated workflow management (e.g. if A fails and B hasn't started yet, do C, but if A and B have succeeded do D) then this may not be the best choice.

If you're looking for something lightweight, you might consider tools like RunDeck or Jenkins.

Both implementations would follow the master / agent model. You could easily add criteria or run scripts for the node selection, then simply launch the job on the node that's selected.

Either tool would take care of scheduling, authentication, auditing, reporting, and execution; both support ad-hoc execution and support configurable parameters to prevent multiple instances of a job from being executed.