一天的Cron表达每小时发生一次

时间:2013-06-19 06:41:03

标签: cron quartz-scheduler cronexpression

我需要cron表达式,它允许我通过以下规则运行调度程序:

Starts 12:00 am on Friday (pacific time) 
ends 12:00 am on Saturday (pacific time)
And between these two dates it must occurs every hour

我可以写一些像"0 0 12/1 ? * FRI-SAT"这样的东西但是当然不正确。 如何设置从12-00 FRI到12-00 SAT的简单范围?

3 个答案:

答案 0 :(得分:2)

试试这个表达

0 0 12-23,00-12 ? * FRI,SAT

您可以输入此表达式在http://www.cronmaker.com/验证下一个预定时间。

答案 1 :(得分:1)

我猜你可能需要设置两个触发器,一个从星期五中午12:00开始,到午夜结束,每小时触发一个星期六,从星期六00:00开始,到12点结束:下午00点。像这样的东西

0 0 12-23 ? * FRI
0 0 0-12 ? * SAT

Cron Trigger Tutorial
修改
另请查看Cron Maker,因为它会为您生成cron表达式。并且还会显示何时会触发。

答案 2 :(得分:0)

如果cron表达式不易识别,您可以随时构建自己的触发器。

我认为这样的事情可能有所帮助:

    var jobDetail;

    var days = new DayOfWeek[] {DayOfWeek.Friday, DayOfWeek.Saturday};

    var trigger = TriggerBuilder.Create()
        .ForJob(jobDetail)
        .WithDailyTimeIntervalSchedule(x => x.WithIntervalInHours(1)
        .OnDaysOfTheWeek(days)
        .StartingDailyAt(TimeOfDay.HourAndMinuteOfDay(0, 0)));