Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can I set the number of threads in the Quartz.NET threadpool?

I've seen in this tutorial section of the Quartz.NET documentation that it should be possible to define the maximum number of threads the Quartz scheduler is going to use. In my special case I want to set this number to 1. But in the API doc I couldn't find a way to access the threadpool instance my scheduler is using and to set any properties on it.

Currently my code looks like this:

ISchedulerFactory schedFact = new StdSchedulerFactory();

IScheduler scheduler = schedFact.GetScheduler();
scheduler.Start();

// Setup jobs and triggers and then call scheduler.ScheduleJob...

Does somebody know how I can set the number of threads in the pool?

Thanks for help in advance!

like image 459
Slauma Avatar asked Nov 05 '10 17:11

Slauma


1 Answers

You can do this programmatically with the code below if you don't want to rely on the external quartz.config file for whatever reason:

    var properties = new NameValueCollection { {"quartz.threadPool.threadCount", "1"} };

    var schedulerFactory = new StdSchedulerFactory(properties);
    var scheduler = schedulerFactory.GetScheduler();

I agree with the comments in the accepted answer though that in this case you probably want to use [DisallowConcurrentExecutionAttribute] on your IJob class instead.

like image 193
Scott Lerch Avatar answered Oct 19 '22 07:10

Scott Lerch