【问题标题】:How can I set the number of threads in the Quartz.NET threadpool?如何设置 Quartz.NET 线程池中的线程数?
【发布时间】:2010-11-05 17:26:33
【问题描述】:

我在 Quartz.NET 文档的this tutorial section 中看到,应该可以定义 Quartz 调度程序将使用的最大线程数。在我的特殊情况下,我想将此数字设置为 1。但在 API 文档中,我找不到访问调度程序正在使用的线程池实例并在其上设置任何属性的方法。

目前我的代码如下所示:

ISchedulerFactory schedFact = new StdSchedulerFactory();

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

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

有人知道我可以如何设置池中的线程数吗?

提前感谢您的帮助!

【问题讨论】:

    标签: .net quartz.net


    【解决方案1】:

    如果您出于某种原因不想依赖外部 quartz.config 文件,可以使用以下代码以编程方式执行此操作:

        var properties = new NameValueCollection { {"quartz.threadPool.threadCount", "1"} };
    
        var schedulerFactory = new StdSchedulerFactory(properties);
        var scheduler = schedulerFactory.GetScheduler();
    

    我同意接受答案中的 cmets,但在这种情况下,您可能希望在 IJob 类上使用 [DisallowConcurrentExecutionAttribute]

    【讨论】:

    • 我已经这样做了,但是当我的 IJob 课程没有[DisallowConcurrentExecutionAttribute] 并且我在工作中使用睡眠时,例如this sample,您会在第一份工作结束前多次看到int a。那是因为当我的线程进入睡眠状态时,它开始执行另一项预定的工作(这里仍然只有一个线程)。这是我一开始不明白的事情,虽然我可能会帮助其他人,所以我在这里留下这个评论:D
    【解决方案2】:

    这在一定程度上取决于您使用的池和调度程序正在读取的配置文件。但是如果你使用标准的SimpleThreadPool.cs,那么可以在quartz.config文件中配置线程的数量,默认情况下会创建10个线程:

    【讨论】:

    • 与此同时,我为我的目的找到了另一种解决方案:我只有一个带有许多参数化触发器的 JobDetail 并且将 ThreadCount 设置为 1 我想确保作业不会同时运行。 (我的 Execute 方法不是线程安全的。)但更直接的方法似乎是实现 IStatefulJob 而不是 IJob 我现在所做的(似乎可以按我的意愿工作)。无论如何:你肯定回答了我的问题,很高兴知道将来有一个配置文件(我直到现在才知道)以及我可以用它做什么。谢谢!
    • 不客气!你说得对,实现 IStatefulJob 接口是满足您需求的最佳解决方案。
    • @Slauma:Quartz.Net 2.x 的做法是用[DisallowConcurrentExecutionAttribute] 装饰你的实现IJob 的类
    • @EricJ.:谢谢!很高兴知道 Quartz 的下一个项目。
    • @jdecuyper “Quartz.Simpl.SimpleThreadPool, Quartz”是“Simpl”错字吗?
    【解决方案3】:

    在 web.config 文件的石英部分下添加以下值。

    <add key="quartz.threadPool.threadCount" value="20" />
    

    值表示可用于并发执行作业的线程数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-28
      • 1970-01-01
      • 2010-12-23
      • 2020-11-28
      • 2019-01-29
      • 1970-01-01
      • 2011-09-18
      相关资源
      最近更新 更多