JBoss Scheduler を使用して cron のようなことができるが、実行にかかった時間ずつ起動時間がずれていってしまう。
たとえば下記のような設定の時、実行に30分かかってしまうと、初回はAM 00:00 に実行、次回は PM 12:30 というようになってしまう。
<server>
<mbean code="org.jboss.varia.scheduler.Scheduler"
name=":service=DailyCheckService">
<attribute name="StartAtStartup">true</attribute>
<attribute name="SchedulableClass">com.msysh.DailyCheckService</attribute>
<attribute name="SchedulableArguments">Do process</attribute>
<attribute name="SchedulableArgumentTypes">java.lang.String</attribute>
<attribute name="DateFormat">yyyy-MM-dd HH:mm:ss</attribute>
<attribute name="InitialStartDate">2011-01-01 00:00:00</attribute>
<!-- 12時間おきに実行 -->
<attribute name="SchedulePeriod">43200000</attribute>
<attribute name="InitialRepetitions">-1</attribute>
</mbean>
</server>
参考リンクなどによると、下記を追加すればよさそう。
<attribute name="FixedRate">true</attribute>