Introducing the Quartz.Net Feature Pack

I’d like to introduce the [Quartz.Net feature pack][qnfp] project to you. It’s hosted on GitHub and it’s main purpose is to provide some features that are not currently part of Quartz.Net. Traditionally, Quartz.Net has been a direct port of the Java implementation of Quartz and so it doesn’t typically add new functionality that might be useful if it is not part of the Java version.

Believe it or not, work on this project goes on, albeit slowly, because of the usual reasons. I did want to use this post to outline what is already there and also to keep a running list of things I’d like to see. These features are all tied to some sort of pain point that I’ve run into as I’ve been using the scheduler. Let’s start with what is already there, in some shape or form.

What is Currently Available in the Quartz.Net FeaturePack

  • [A scheduler that is runnable from the command line, to make it easier to test things out][1]
  • [A sample implementation of a job factory using Castle Windsor and dependency injection][2]
  • [A job that allows you to add job listeners to a scheduler using the quartz_jobs.xml file][3]
  • [A job that ouputs diagnostic information to the log][4]
  • [A job listener that publishes job execution information as an RSS feed][5]
  • [A plugin the hosts a WCF service that exposes RSS feeds of scheduler data][6]
  • [A plugin that hosts a Nancy web server that is used to expose the scheduler via a REST interface][7]
  • [A plugin that allows more of Quartz.Net features to be used via an xml file (like adding listeners, adding calendars, etc.) It’s meant to be an extension of what the current xml plugin does][8]
  • [A sample implementation of how to run Quartz.Net as a standalone server][9]
  • [A service that paired with the WCF plugin, exposes scheduler data via RSS][10]

What is Not There Right Now But I’d Like to See

  • All of the above items finished (some are almost done, some are quite basic)
  • A way to dynamically reload job DLLs, so the scheduler doesn’t have to be stopped and started whenever you update one of the jobs.
  • Cluster aware management tools
  • Nicer graphical interfaces. Yes, there are a few out there but they’re scattered all over. Would be nice to have everything in one place.

I’m making a conscious effort this year to spend more time working on this project. If you have any suggestions on features that you would like to see added, send me an email or just head on over to the [QuartzNetFeaturePack][qnfp] project page on Github and add an issue there. [qnfp]:https://github.com/jvilalta/QuartzNetFeaturePack [1]:https://github.com/jvilalta/QuartzNetFeaturePack/tree/master/Quartz.FeaturePack.CLI [2]:https://github.com/jvilalta/QuartzNetFeaturePack/tree/master/Quartz.FeaturePack.JobFactories [3]:https://github.com/jvilalta/QuartzNetFeaturePack/blob/master/Quartz.FeaturePack.Jobs/AddListenerJob.cs [4]:https://github.com/jvilalta/QuartzNetFeaturePack/blob/master/Quartz.FeaturePack.Jobs/DiagnosticJob.cs [5]:https://github.com/jvilalta/QuartzNetFeaturePack/tree/master/Quartz.FeaturePack.Listeners [6]:https://github.com/jvilalta/QuartzNetFeaturePack/blob/master/Quartz.FeaturePack.Plugins/FeedServicePlugin.cs [7]:https://github.com/jvilalta/QuartzNetFeaturePack/blob/master/Quartz.FeaturePack.Plugins/NancyWebApiPlugin.cs [8]:https://github.com/jvilalta/QuartzNetFeaturePack/blob/master/Quartz.FeaturePack.Plugins/XmlLoaderPlugin.cs [9]:https://github.com/jvilalta/QuartzNetFeaturePack/tree/master/Quartz.FeaturePack.Server [10]:https://github.com/jvilalta/QuartzNetFeaturePack/tree/master/Quartz.FeaturePack.Services