Java 如何在每周的几天内,每30分钟从20.35运行一个作业到23.35?
我面临cron表达式的问题。 从周四到周日,我必须每30分钟运行一次方法。时间从20:35分钟开始到23:35分钟 Cron表达式:Java 如何在每周的几天内,每30分钟从20.35运行一个作业到23.35?,java,cron,cronexpression,Java,Cron,Cronexpression,我面临cron表达式的问题。 从周四到周日,我必须每30分钟运行一次方法。时间从20:35分钟开始到23:35分钟 Cron表达式: "0 35/30 20-23 ? * THU-SUN"; 据我了解,;我的方法将在周四的20:35分调用,每30分钟调用一次,直到周日 我的期望: 方法将按照以下计时进行调用: Thu May 19 20:35:00 IST 2016 Thu May 19 21:05:00 IST 2016 Thu May 19 21:40:00 IST 2016 Thu M
"0 35/30 20-23 ? * THU-SUN";
据我了解,;我的方法将在周四的20:35分调用,每30分钟调用一次,直到周日
我的期望:
方法将按照以下计时进行调用:
Thu May 19 20:35:00 IST 2016
Thu May 19 21:05:00 IST 2016
Thu May 19 21:40:00 IST 2016
Thu May 19 20:35:00 IST 2016
Thu May 19 21:35:00 IST 2016
Thu May 19 22:35:00 IST 2016
但是;方法get通过以下计时进行调用:
Thu May 19 20:35:00 IST 2016
Thu May 19 21:05:00 IST 2016
Thu May 19 21:40:00 IST 2016
Thu May 19 20:35:00 IST 2016
Thu May 19 21:35:00 IST 2016
Thu May 19 22:35:00 IST 2016
有人能帮我吗。为什么cron表达式每1小时计算一次
下面是代码示例:
@Scheduled(cron="0 35/30 20-23 ? * THU-SUN")
public void startInboundSFTPChannel(){
logger.info("Cron job started....");
downloadSftpFilesController();
}
据我所知,您的表达式(
035/3020-23?*THU-SUN
)的意思是:
-仅以整分钟运行0
-从35开始每30分钟运行一次35/30
-运行时间介于20和23之间20-23
-使用表达式后面部分的隐式天数?
每月运行一次*
-周四、周五、周六和周日跑步THU-SUN
- 首先,它计算分钟的值
——与35
条件匹配的值0-59
- 其次,它将
添加到先前的30
(等于35
)中不匹配的65
条件0-59
- 最后,唯一正确的值是
35
35时,它每小时运行一次代码
您能在2016年5月19日星期四20:05:00再次运行代码吗
如果是,则可以使用以下表达式之一:
05,35 20-23?*THU-SUN
这意味着:
0
-仅以整分钟运行
5,35
-每30分钟运行一次,从分钟==5开始
20-23
-运行时间介于20和23之间
?
-使用表达式后面部分的隐式天数
*
-每月运行一次
THU-SUN
-周四、周五、周六和周日跑步
05/3020-23?*THU-SUN
这意味着:
0
-仅以整分钟运行
5/30
-从分钟==5开始,每30分钟运行一次
20-23
-运行时间介于20和23之间
?
-使用表达式后面部分的隐式天数
*
-每月运行一次
THU-SUN
-周四、周五、周六和周日跑步
您也会发现类似的问题。如果您希望命令每天从20.35运行到23.35,从星期四到星期天,您可以通过两个步骤来定义它:
35 20 ? * THU-SUN
5-59 21-23 ? * THU-SUN
在一个cron表达式中设置它并不容易,因为您不希望它在20.05运行
也就是说:20分,35分跑。在21至23小时
我的回答基于以下格式:
+---------------- minute (0 - 59)
| +------------- hour (0 - 23)
| | +---------- day of month (1 - 31)
| | | +------- month (1 - 12)
| | | | +---- day of week (0 - 6) (Sunday=0 or 7)
| | | | |
* * * * * command to be executed
您应该告诉我们您的cron表达式是如何使用的(可能添加一些代码?)使用起来并不简单:“0 5,35 20-23?*THU-SUN”代码>?嗨,RC..我添加了一些代码部分。请检查。嗨@tommus,这个cron表达式不起作用。因为它将从晚上8点到11点,每5分钟和35分钟启动一次。所以你希望它从周四的20点35分开始,每30分钟运行一次,直到周日的23点35分,或者在这个时间范围内每天运行一次?明白了。谢谢如果我从20:35分钟开始,加上30分钟,那么加起来就是65分钟。哪个将大于(0-59)。这就是为什么我的cron表达式计算不正确的原因。@Kumar是的,没错。您始终可以在“感谢兄弟”中计算cron表达式@fedorquiYep@fedorqui。我必须修改cron表达式。分钟数不得超过59分钟。