我想创建一个可编程的调度程序,每天触发一次。它必须每天在同一时间触发,无论是白天节约时间是开还是关。所以如果是6点钟 "Europe/Berlin"
(utc+1)当dst关闭时,它也应在6点钟dst打开时触发(utc+2)。
我想使用ejb timerservice,但找不到任何有关dst感知的信息。
一些示例代码:
import javax.annotation.PostConstruct;
import javax.annotation.Resource;
import javax.ejb.ScheduleExpression;
import javax.ejb.Singleton;
import javax.ejb.Startup;
import javax.ejb.Timeout;
import javax.ejb.TimerService;
@Singleton
@Startup
public class MyScheduler
{
@Resource
private TimerService timerService;
@Timeout
void myCallbackMethod ()
{
//do something ...
}
@PostConstruct
void init()
{
ScheduleExpression scheduleExpression = new ScheduleExpression();
scheduleExpression.hour("6");
scheduleExpression.timezone("Europe/Berlin");
timerService.createCalendarTimer(scheduleExpression);
}
}
我使用scheduleexpression是因为我在那里设置了计时器的时区。如果我错了,请纠正我。
上面的代码会按照我解释/想要的做吗?
我在这个答案中找到了另一种方法https://stackoverflow.com/a/20388073/2940429,但我希望有一个更舒适的方式像上面的。
暂无答案!
目前还没有任何答案,快来回答吧!