【发布时间】:2015-01-30 08:17:55
【问题描述】:
quartz 中的作业是作为进程还是线程执行?
如果它作为线程执行,那么在执行繁重的作业或耗时的作业时会影响石英调度器的性能。
如果是,请提出解决方案。
如果我们同时执行 10 个耗时的作业,效果如何?
我阅读了教程,但没有找到解决方案。 请提出解决方案。
谢谢。
【问题讨论】:
标签: quartz-scheduler
quartz 中的作业是作为进程还是线程执行?
如果它作为线程执行,那么在执行繁重的作业或耗时的作业时会影响石英调度器的性能。
如果是,请提出解决方案。
如果我们同时执行 10 个耗时的作业,效果如何?
我阅读了教程,但没有找到解决方案。 请提出解决方案。
谢谢。
【问题讨论】:
标签: quartz-scheduler
阅读有关Configuring the thread pool 的文档,其中解释了石英线程池如何满足您的需求。更具体地说,org.quartz.threadPool.threadCount 配置属性可以根据文档说明根据您的需要进行设置:
可用于并发执行作业的线程数。你 可以指定任何正整数,但只能指定 1 到 100是实用的。如果你只有几个工作会解雇几次 一天,那么一个线程就足够了。如果你有数以万计的工作, 每分钟有很多次触发,那么你想要一个线程数更像 50 或 100(这在很大程度上取决于您的工作性质 作业执行,以及您的系统资源)。
在您提到的关于同时触发 10 个作业的具体示例中,如果您将上述属性配置为超过 10 个线程,则每个作业将在自己的线程上同时运行。否则,如果你配置的少,一些会先启动,而另一些会等待线程可用。如果在配置的时间段之前没有线程可用,您设置的 misfire 指令将处理要采取的操作,这通常是尽快触发延迟作业,但这也是一个可配置的设置。
【讨论】: