- ejb-jar.xml
Для меня вариант ejb-jar.xml начал работать только на TomEE. Я передаю параметр javax.ejb.Timer в методе тайм-аута:
<session>
<ejb-name>AppTimerService</ejb-name>
<ejb-class>my.app.AppTimerService</ejb-class>
<session-type>Singleton</session-type>
<timer>
<schedule>
<second>*/10</second>
<minute>*</minute>
<hour>*</hour>
</schedule>
<timeout-method>
<method-name>timeout</method-name>
<method-params>
<method-param>javax.ejb.Timer</method-param>
</method-params>
</timeout-method>
</timer>
public class AppTimerService {
public void timeout(Timer timer) {
System.out.println("[in timeout method]");
}
}
Спасибо https://blogs.oracle.com/arungupta/entry/totd_146_understanding_the_ejb сообщение.
Вариант файла свойств
Вы можете прочитать файл .properties и программно создать Timer
ScheduleExpression schedule = new ScheduleExpression();
schedule.hour(hourProperty);//previously read property from .properties file
schedule.minute(minuteProperty);//previously read property from .properties file
Timer timer = timerService.createCalendarTimer(schedule);
Но я не могу найти, можем ли мы использовать выражения cron в EJB.