2012-07-18 100 views
4

java Quartz Scheduler是否支持异步作业调度。如果是这样,是默认的还是必须定制作业以异步运行。Quartz中的异步作业调度

+0

“异步作业调度”是什么意思?默认情况下,Quartz中的作业使用不同的线程执行。 – nobeh 2012-07-18 14:09:57

+0

实现并行化。 – 2012-07-18 14:14:22

+2

我认为你所要求的答案是[这里](http://stackoverflow.com/questions/11361939/quartz-thread-execution-parallel-or-sequential) – 2012-07-18 14:15:38

回答

4

不仅它支持这种行为,而且基本上没有其他办法。一旦你安排了一个工作和一个触发器(在任何线程中),这个工作将在一个线程池中异步执行。您可以像线程数一样控制该线程池。

另一个问题是并行执行相同的工作。默认情况下,同一作业可以运行在由不同线程启动的多个线程中,除非作业为有状态

+0

我在Quartz中遇到的一个问题是......当正在执行的作业中,我不能使用相同的调度程序实例读取作业,触发器,组等的列表,直到作业执行完毕。如果我尝试在作业执行时使用scheduler.getGroupNames(),我会得到空指针异常。有没有办法解决这个问题。任何帮助将不胜感激。 – 2012-07-20 02:50:00

+0

@SangramAnand:听起来像是Quartz中的一个bug。也许作为单独的问题发布,甚至报告错误? – 2012-07-20 06:32:17

+0

好的,谢谢你的建议。将张贴。 – 2012-07-20 16:27:59

1

是的,它应该是默认的。我在我的Grails应用程序中为我的网站使用了Quartz,并为每个作业分配了新线程。