Quartz.Net Listeners Tutorial

This multi-part tutorial will describe Quartz.Net listeners in detail and will provide examples of how to use them.

We’ll cover the following listeners and topics in this tutorial:

A listener overview: Part 1, Part 2, Part 3,Part 4

Quartz.Net's Built-in Listeners

I think that we’ll have one post for each listener type. For now and while those posts are ready, you may already know what listeners are and just want to start using them. You may have even begun to write your own, or already have one ready to go. So, now you’re wondering how you can add a listener to your scheduler. The short answer is that the only way to do so with the default distribution is to do it programmatically, by calling one of the AddListener methods on the Scheduler object. More on this will be covered in the first post, using the built-in listeners.

Continue Reading

Checking Your Cron Expression’s Schedule

If you’re using the CronTrigger to fire your Quartz.Net job, then you’ll have to come up with a CronExpression that generates the schedule you want. Sometimes you may not be sure if it’s the correct schedule or maybe Quartz.Net doesn’t fire when you want it to. There are multiple reasons why a trigger doesn’t fire when it should but perhaps the first thing to look at is whether you’ve got the correct CronExpression.

Continue Reading

Understanding the DisallowConcurrentExecution Job Attribute

In this post I’ll go over what the DisallowConcurrentExecution job attribute does and how to use it.

Documentation

The Quartz.net documentation states that the DisallowConcurrentExecutionAttribute is

An attribute that marks a IJob class as one that must not have multiple instances executed concurrently (where instance is based-upon a IJobDetail definition - or in other words based upon a JobKey.
This can be used in lieu of implementing the StatefulJob marker interface that was used prior to Quartz 2.0.

Continue Reading