Quartz调度器工作线程问题

3

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

请问有谁可以帮助我解决这个问题。我对Quartz Scheduler非常陌生。

提前感谢, Amar


你能发一些你的代码吗? - RobertG
2个回答

2
quartz手册下的org.quartz.threadPool.threadCount标题中得知:
如果您只有几个工作项每天触发几次,则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

首先检查您的cron表达式,例如“0 0 */3 * *”。

或者更改您的线程数目。

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接