我遇到Quartz Scheduler工作线程的问题。我创建了一个调度程序任务,它将每3个小时执行一次。我创建了一个作业和一个触发器。当我执行此调度程序时,我观察到一个奇怪的行为,同一个作业被分配给10个工作线程。这10个工作线程执行相同的代码10次。我该如何解决这个问题...?
任何人都可以帮助我。我是Quartz Scheduler的新手。
Thanq In Advance, 阿玛尔
答案 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>