2

我在 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 执行?谢谢你!

4

1 回答 1

0

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

由于您想按月执行并且不能将其声明为属性。您需要有另一个类来处理设置下一个间隔。 Java 月度计时器

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

<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); 

}
于 2014-04-11T21:04:29.833 回答