如果有开始日期和结束日期,Hangfire如何编写crontab?

时间:2016-12-28 03:00:14

标签: crontab hangfire

我知道crontab表达式没有'Year'表达式。但我想知道,如果有一种解决方法或某些东西可以使Hangfire在指定年份开始/停止安排。

例如,给出一个案例:

  • 假设当前日期为2016年9月15日

  • 计划程序于2016年12月1日开始

  • 每天上午8:30至下午5:30(办公时间)每小时重复一次

  • 周一至周五平日发生

  • 2018年结束,Februrary,1

从其他帖子中了解到,在某些情况下可能需要超过1个crontab表达式。但对于这个,我不知道如何写。原因是:

如果我写:

  • “30 8 1 12 0-4”:仅指定12月1日
  • “30 8 * * 0-4”:它没有告诉哪个月开始或结束

如何编写此crontab?

1 个答案:

答案 0 :(得分:2)

不确定干净的方式。但它可以这种方式处理 - 5个职位:

2个延迟作业在开始日期和结束日期(StartDateDelayedJob,EndDateDelayedJob)上运行

3个重复工作 -

  1. 第一个用cron表达式(* * / 1 * * 1-5)从星期一到星期五每小时运行预期的任务,
  2. 第二次用cron表达式(30 8 * * 1-5),如果是星期一到星期五,每天在8月30日添加第一次复发工作,
  3. 第3次用cron表达式(30 17 * * 1-5),如果是星期一到星期五,每天在5月30日删除第1次经常性工作。
  4. StartDateDelayedJob将添加第二次重复作业和第三次重复作业。

    EndDateDelayedJob将删除两个重复作业。

    希望这有帮助