Customizable options¶
At the application layer, on the appsettings.json
it is possible to
configure some parameters of the Scheduler. Those are:
- ConcurrentMessageLimit: is used to limit the receive endpoint to only
one concurrent message for each TokenId (the partitioner uses hashing to
meet the partition count). It is used for both MassTransit's
CancelScheduledMessage
andScheduleMessage
consumers. - ThreadCount: This is the number of concurrent tasks that can be dispatched to CLR thread pool. If you only have a few jobs that fire a few times a day, then 1 tasks is plenty! If you have tens of thousands of jobs, with many firing every minute, then you probably want a max concurrency count more like 50 or 100 (this highly depends on the nature of the work that your jobs perform, and your systems resources!). Also note CLR thread pool configuration separate from Quartz itself. Defaults to 32.
- InstanceName: Serves as a mechanism for client code to distinguish schedulers when multiple instances are used within the same program. If you are using the clustering features, you must use the same name for every instance in the cluster that is 'logically' the same scheduler. Defaults to "ITsynch.Suite.Scheduler".
- MisfireThreshold: The number of milliseconds the scheduler will 'tolerate' a trigger to pass its next-fire-time by, before being considered "misfired". Defaults to 60000 (60 seconds).
- TablePrefix: The "table prefix" property is a string equal to the prefix given to Quartz’s tables that were created in your database. You can have multiple sets of Quartz’s tables within the same database if they use different table prefixes. Defaults to "QRTZ_".
- Clustered: This flag determines whether to turn on or off the clustering features. This property must be set to "true" if you are having multiple instances of Quartz use the same set of database tables, otherwise you will experience havoc. Defaults to true.
All of the mentioned parameters except ConcurrentMessageLimit belong to configurable properties of Quartz.