我在尝试ScheduleExpression时发现一个奇怪的行为:

如果我每30秒创建一个计时器,

scheduleExpression.second("*/30");


我懂了

[second=*/30;minute=*;hour=*;dayOfMonth=*;month=*;dayOfWeek=*;year=*;timezoneID=null;start=null;end=null]


并且我的计时器按预期每30秒执行一次(分别在:00和:30)。到目前为止,一切都很好。

然后我尝试用几分钟做同样的事情

scheduleExpression.minute("*/1");


正如我所料

[second=*;minute=*/1;hour=*;dayOfMonth=*;month=*;dayOfWeek=*;year=*;timezoneID=null;start=null;end=null]


但是我的@Timeout方法被连续调用。代码与我只是更改ScheduleExpression完全相同。

这是一个已知问题吗?还是我误解了文档,必须同时设置两者

scheduleExpression.second(0);
scheduleExpression.minute("*/1");

最佳答案

ScheduleExpression documentation看来,您应该同时调用这两种方法(特别是如果您之前计划了seconds)。

看这个:

Example : ( minute = "∗/14", hour="1,2")


他们同时设置minuteshours

关于java - ScheduleExpression和增量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14374673/

10-12 04:54