这个默认线程数可以改的,另外你先查清你有多少个job触发,最主要看看有没有逻辑问题

解决方案 »

  1.   

    org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool
    org.quartz.threadPool.threadCount = 25
    org.quartz.threadPool.threadPriority = 5我的一些设置如上,这应该和线程排队没关系。比如说我同时scheduder的30个job,想让这些job都在2分钟后触发,结果是有那么一两个可以在2分钟后准时触发,而其它的要等到大约20分钟后才触发。
      

  2.   

    //   make   sure   only   one   scheduler   instance   is   returned   for   all   threads. 
    synchronized(tsf) 
    这个地方,必须这样吗,可以通过其他方式来实现啊,我感觉这里首先有潜在的易患,我认为不是非常必须的时候最好还是不用这个synchronizedjta我没研究过,要不你挂上quartz的源码单步跟踪,一般实在搞不定的问题我都这么干,运气好的时候可以通过源码发现问题,希望能帮到你吧,这帖子太冷了,
      

  3.   

    会不会这个有问题com.vitria.bpmn.timer.TimerJobStore 
      

  4.   

    我早跟过了,没发现问题在哪。只知道把线程挂起后停在SimpleSemaphore.obtainLock()方法里面了。releaseLock()里面倒是有一个notify线程的方法,但是不知道谁会叫到这个notify.
      

  5.   

    问题找到了,是因为用的CMT,导致transaction 被lock住了。