我正在尝试在jboss-service.xml
中定义两个调度程序。一个调度程序经常运行,并且执行时间很短。另一个调度程序每天运行一次,但需要花费大量时间来执行。我的jboss-service.xml
的摘录如下:
<!-- Frequent, fast -->
<mbean code="org.jboss.varia.scheduler.Scheduler"
name=":service=FrequentSchedule,schedule=frequent">
<attribute name="InitialStartDate">NOW</attribute>
<attribute name="SchedulePeriod">5000</attribute>
<!-- Other attributes... -->
</mbean>
<!-- Infrequent, slow -->
<mbean code="org.jboss.varia.scheduler.Scheduler"
name=":service=InfrequentSchedule,schedule=infrequent">
<attribute name="InitialStartDate">0</attribute>
<attribute name="SchedulePeriod">86400000</attribute>
<!-- Other attributes... -->
</mbean>
此配置的结果是频繁调度程序以预期频率执行,直到执行长时间运行的调度程序为止。此时,在长时间运行的计划完成之前,不再执行频繁的计划。来自org.jboss.varia.scheduler.Scheduler
的Javadoc:
注意:调度程序实例仅允许一次运行一个计划。 因此,当您要运行两个计划时,请使用此MBean创建实例。 MBean的建议对象名称是:: service = Scheduler,schedule =
我试图遵循这个建议,但它没有奏效。如果有人有任何经验可以让JBoss 4.0.5.GA上并行运行多个调度程序,那么任何帮助将不胜感激。
答案 0 :(得分:1)
解决,在mbean
中添加此属性<attribute name="TimerName">jboss:service=TimerNew</attribute>
正如在JBoss-Scheduler-Quartz中解释的那样,使用另一个服务Timer,允许在不同的服务定时器上使用不同的mbean。所以每个计时器都是独立的(并行)。