如何安排JBoss任务?

时间:2013-08-19 20:36:13

标签: jboss scheduled-tasks

我在JBoss安排了任务:

<?xml version="1.0" encoding="UTF-8"?>  
 <server>  
  <mbean code="org.jboss.varia.scheduler.Scheduler" name="acme:service=Scheduler">  
   <attribute name="...">...</attribute>  
   .....
  </mbean>  
 </server>  

如何编写此任务,将在每个月的第一天凌晨1:00执行? 谢谢!

1 个答案:

答案 0 :(得分:0)

您需要创建一个调度类。 org.jboss.varia.scheduler.Scheduler

由于您希望每月执行一次,因此无法将其声明为属性。您需要另一个处理设置下一个间隔的类。 Java Monthly Timer

让调度程序类调用每月计时器以获取下一个间隔并进行设置。也许在初始阶段传递一些值。

<mbean code="org.jboss.varia.scheduler.Scheduler"
       name="jboss.docs:service=Scheduler">
    <attribute name="StartAtStartup">true</attribute>
    <attribute name="SchedulableClass">org.jboss.book.misc.ex2.ExSchedulable</attribute>
    <attribute name="SchedulableArguments">01:00</attribute> <!-- 24hr time hh:mm -->
    <attribute name="SchedulableArgumentTypes">java.lang.String</attribute>

</mbean>

ExSchedulable(这只是伪代码)

public ExSchedulable(String time)  {
    Date tDate = new Date();
    tDate.setTime(time);

    Monthly monthyObj = Monthly(1); //Day of the month
    //Gets the next interval date specified from the day of the month 
    Date nextInterval = monthyObj .getNextInterval(tDate); 

}