我正在使用EJB 3.1和jboss-eap-6.4,并且要为ejb调度程序的小时,分钟和秒设置一些动态参数,如下所示:
非参数代码-每5分钟的30秒运行一次:
@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秒运行一次:
@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
}
}
上面的代码执行不正确,通常每秒执行多次。
另外,我还阅读了其他一些对我没有帮助的问题:
EJB3.x中@Schedule方法的动态参数
使用计时器服务-Java EE 6教程
任何帮助,将不胜感激。
而是使用程序化调度,这是一个示例:
@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
}
}
我想让它在每天每小时的第5,15,25,35,45和55分钟运行。这似乎与这里的AWS调度事件文档一致http://docs.AWS.amazon.com/amazoncloudwatch/latest/Events/scheduledevents.html。 上面的文档允许用0到59之间的逗号分隔值表示分钟,并使用*通配符反映小时、月日(或周日)、月和年。 我尝试在Lambda控制台(创建函数并
我正在尝试设置Cloudwatch计划事件,我的cron表达式似乎无效,我不知道为什么。 文档中的表达式示例: 另一个例子: 现在,我希望它每天在UTC时间下午18点运行,所以这似乎就是我想要的。 但我正在 为什么无效?
除了星期二,我想在和UTC期间的每一分钟都调用我的lambda。我在cloud dwatch规则中编写了以下cron表达式,但我收到错误 参数SchduleExpression无效。 我用crontab交叉检查了表达式。古鲁也是。 我甚至试着做以下事情,因为如果它在星期二运行,我还可以。 他们都给了我错误。谁能帮帮我吗?
我正在尝试设置Cloudwatch计划的事件,我的cron表达式似乎无效,但我不知道为什么。 我的cron表达式是: 我想每分钟运行一次cron,但每当我在serverless上部署函数时,都会出现以下错误 如果我做错了什么,请告诉我
使用Robolectric的参数化测试 原文链接 : Parameterized testing with Robolectric 译文出自 : 开发技术前线 www.devtf.cn 译者 : Lollypo 校对者: Chaos 状态 : 校对完成 在目前的项目中我们使用Robolectric为Android应用程序编写单元测试,它一直都干的不错。最近我需要编写一个测试用例,通过每次使用不同的
我知道我的问题很笼统,但我对人工智能领域还不熟悉。我用一些参数做了一个实验(几乎6个参数)。每一个都是独立的,我想找到输出函数最大或最小的最优解。然而,如果我想用传统的编程技术来实现,这将需要很多时间,因为我将使用六个嵌套循环。 我只是想知道用哪种人工智能技术来解决这个问题?遗传算法?神经网络?机器学习? 实际上,这个问题可能有不止一个评估函数。它将有一个功能,我们应该最小化它(成本)和另一个功能