• Quartz.NET is a C# port of the Java library of the same name.
  • Key components are:
    • Schedulers
    • Jobs (really just an ICommand)
    • JobDetails (the state for the Job Command)
    • Triggers
    • JobListeners
  • The loose coupling between Jobs and Triggers allows a powerful many-to-many configuration(many triggers to one job, or one trigger setting off many jobs).
  • Pros:
    • Works in a .NET app.
    • Free standing: no coupling to the windows scheduling mechanism.
  • Cons:
    • Not available for .NET20.
    • Has a dependency on the open source CommonLogger library. Shame!

Key Points

  • In a Scheduler, you register a newJobDetail, that wrap a Job.
    • The JobDetail contains variables needed by the Job at execution time.
  • If you want the Job to be able to update tracking variables, the Job has to inherit from IStatefulJob rather than just IJob.
  • Only allowed to throw JobExecutionException
  • Examples on the site are out of date.
    • See this page for later API examples.