Quartz Scheduler工作线程问题

时间:2013-09-12 11:57:42

标签: quartz-scheduler

我遇到Quartz Scheduler工作线程的问题。我创建了一个调度程序任务,它将每3个小时执行一次。我创建了一个作业和一个触发器。当我执行此调度程序时,我观察到一个奇怪的行为,同一个作业被分配给10个工作线程。这10个工作线程执行相同的代码10次。我该如何解决这个问题...?

任何人都可以帮助我。我是Quartz Scheduler的新手。

Thanq In Advance, 阿玛尔

2 个答案:

答案 0 :(得分:2)

来自 org.quartz.threadPool.threadCount 标题下的quartz manual

  

如果你只有一些工作每天开几次,那么就是1个线程   很多!   如果你有成千上万的工作,每分钟都有很多工作,   那么你可能想要一个更像50或100的线程数(这个很高   取决于你的工作表现的工作性质,以及你的工作   系统资源!)。

这就是如何更改threadCount。

<configSections>
    <section name="quartz" type="System.Configuration.NameValueSectionHandler,System, Version=1.0.5000.0,Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</configSections>

<quartz>
    <add key="quartz.scheduler.instanceName" value="ServerScheduler" />
    <add key="quartz.threadPool.type" value="Quartz.Simpl.SimpleThreadPool, Quartz" />
    <add key="quartz.threadPool.threadCount" value="80" />
    <add key="quartz.threadPool.threadPriority" value="2" />
    <add key="quartz.jobStore.misfireThreshold" value="60000" />
    <add key="quartz.jobStore.type" value="Quartz.Simpl.RAMJobStore, Quartz" />
</quartz>

答案 1 :(得分:1)

首先检查你的cronExpression,如“0 0 * / 3 * *”

或者更改你的线程数。

<property name="quartzProperties">
    <map>
        <entry key="org.quartz.threadPool.threadCount" value="10"/>
    </map>
</property>