我在尝试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")
他们同时设置
minutes
和hours
。关于java - ScheduleExpression和增量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14374673/