ScheduleExpression介于精确的小时和分钟之间



我正在使用javax.ejb.ScheduleExpression和计时器来创建每日计划作业。我需要用小时和分钟来指定工作时间。例如,假设我希望它运行">每天18:27-19:47";。我该怎么写这个表达式?

我试过以下几种方法;

ScheduleExpression()
.hour("18"-"19")
.minute("27"-"47")
.second("*")

但问题是,当我运行这个程序时,它在18:47停止,在19:27重新开始。那么,我如何让它在这几小时到几分钟之间每秒运行一次呢?

此外,我希望能够在任何时候停止计时器,这是我用";timer.cancel(("方法,然后再次重新安排相同的时间,但这次是第二天。是否可以以某种方式编写一个表达式,该表达式将在第二天开始运行,并在指定的时间继续运行,直到再次取消?

我不认为ScheduleExpression是这样使用的,而且您在如何定义表达式方面也有问题。

ScheduleExpression()
.hour(18-19)
.minute(27-47)
.second("*")

首先,规范.hour(18-19)评估为.hour(-1),而.minute(27-47)等效于.minute(-20),两者都无效。

所以我认为你的意思是(注意报价(:

ScheduleExpression()
.hour("18-19")
.minute("27-47")
.second("*")

CCD_;过期";(即火灾(基于ScheduleExpression。你的意思是每当

  • 小时是18或19
  • 分钟是介于27和47之间(包括27和47(的任何值
  • 每秒钟

所以你会在上看到计时器过期

18:27:00
18:27:01
18:27:02
...
18:47:58
18:47:59
then nothing until
19:27:00
19:27:01
...
19:47:58
19:47:59

你没有提供足够的细节来理解你的意图,但我认为这与你想要的不符。

最新更新