我在Quartz.NET文档的这个教程部分看到,应该可以定义Quartz调度程序将使用的最大线程数.在我的特殊情况下,我想将此数字设置为1.但是在API文档中,我找不到一种方法来访问我的调度程序正在使用的线程池实例并在其上设置任何属性.
目前我的代码如下所示:
ISchedulerFactory schedFact = new StdSchedulerFactory();
IScheduler scheduler = schedFact.GetScheduler();
scheduler.Start();
// Setup jobs and triggers and then call scheduler.ScheduleJob...
Run Code Online (Sandbox Code Playgroud)
有人知道如何设置池中的线程数吗?
提前感谢您的帮助!
Sco*_*rch 28
如果您不想quartz.config因任何原因依赖外部文件,可以使用下面的代码以编程方式执行此操作:
var properties = new NameValueCollection { {"quartz.threadPool.threadCount", "1"} };
var schedulerFactory = new StdSchedulerFactory(properties);
var scheduler = schedulerFactory.GetScheduler();
Run Code Online (Sandbox Code Playgroud)
我同意接受的答案中的评论,但在这种情况下,您可能希望[DisallowConcurrentExecutionAttribute]在您的IJob课程中使用.
这在一定程度上取决于您正在使用的池以及调度程序正在读取的配置文件。但如果您使用标准SimpleThreadPool.cs,则可以在quartz.config 文件中配置线程数量,默认情况下会创建 10 个线程:

| 归档时间: |
|
| 查看次数: |
10078 次 |
| 最近记录: |