我很难写一个cron表达式来安排周一至周六每周五上午4:30到8:30的事件。
感谢。
答案 0 :(得分:2)
我认为你不能一步解决这个问题,所以一个可用的策略可能是首先通过crontab进行粗筛:
0,15,30,45 4,5,6,7,8 * * 1,2,3,4,5,6 /do-whatever
几乎没问题,它只会执行4:00 4:15和8:45,所以我们在执行脚本的开头过滤这些:
# Too early? Then get out
if [ `date +%H%M` -lt 430 ] ; then
exit 0
fi
# Too late? Then get out
if [ `date +%H%M` -gt 830 ] ; then
exit 0
fi
# start of the original script
....
答案 1 :(得分:0)
将需要3个独立的Quartz cron表达式来完全按照您的需要定义时间。
0 30 4,5,6,7,8 ? * MON,TUE,WED,THU,FRI,SAT *
0 45 4,5,6,7 ? * MON,TUE,WED,THU,FRI,SAT *
0 0,15 5,6,7,8 ? * MON,TUE,WED,THU,FRI,SAT *
编辑添加:这个Quartz cron表达式让你从早上4点到早上8点45分,就像fvu's answer一样。
0 0/15 4-8 ? * MON,TUE,WED,THU,FRI,SAT *