我在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执行? 谢谢!
答案 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);
}