大佬教程收集整理的这篇文章主要介绍了使用Schedule Expression参数化EJB Scheduler,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
而是使用程序化调度,这是一个示例:
@Singleton
@Startup
public class triggerJob{
@EJB
//some injections
@resource
private Timerservice timerservice;
@postconstruct
public voID init() {
createTimer();
//the following code resolve my startup problem
try {
preparation();
} catch (CertificateVerificationException E) {
e.printstacktrace();
}
}
@Timeout
public voID timerTimeout() {
try {
preparation();
} catch (CertificateVerificationException E) {
e.printstacktrace();
}
}
private voID createTimer() {
scheduleExpression scheduleExpression = new scheduleExpression();
scheduleExpression.second("30").minute("*/5").hour("*");
TimerConfig timerConfig = new TimerConfig();
timerConfig.setPersistent(false);
timerservice.createCalendarTimer(scheduleExpression, timerConfig);
}
public voID preparation(){
// my scheduled tasks
}
}
我正在使用EJB 3.1和jboss-eap-6.4,并且要为ejb调度程序的小时,分钟和秒设置一些动态参数,如下所示:
非参数代码-每5分钟的30秒运行一次:@H_673_16@
@Singleton
@Startup
public class triggerJob {
@EJB
//some db injections
@PostConstruct
public void onStartup() {
try {
preparation();
} catch (CertificateVerificationException E) {
e.printStackTrace();
}
}
@schedule(second = "30",minute = "*/5",hour = "*",persistent = falsE)
public void preparation() {
//my scheduled tasks
}
}
上面的代码正确执行。
动态参数代码-应每5分钟30秒运行一次:@H_673_16@
@Singleton
@Startup
public class triggerJob {
@EJB
//some injections
private Boolean runningFlag = false;
@resource
private Timerservice timerservice;
public void setTimerservice(Timerservice timerservicE) {
this.timerservice = timerservice;
}
@Timeout
public void timerTimeout() {
try {
preparation();
} catch (CertificateVerificationException E) {
e.printStackTrace();
}
}
@PostConstruct
private void postCunstruct() {
timerservice.createCalendarTimer(createschedule(),new TimerConfig("EJB timer service timeout at ",falsE));
}
private scheduleExpression createschedule() {
scheduleExpression expression = new scheduleExpression();
expression.hour("*")
.minute("*/5")
.second("30");
return expression;
}
public void preparation(){
// my scheduled tasks
}
}
上面的代码执行不正确,通常每秒执行多次。
另外,我还阅读了其他一些对我没有帮助的问题:
EJB
3.x中@schedule方法的动态参数
使用计时器服务-Java EE 6教程
任何帮助,将不胜感激。
以上是大佬教程为你收集整理的使用Schedule Expression参数化EJB Scheduler全部内容,希望文章能够帮你解决使用Schedule Expression参数化EJB Scheduler所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。