cron - 如何为自动调度hangfire作业添加观察者?
问题描述
注意:作业是 Hangfire 作业。
我有 5 个不同的任务可以执行。
它们都可以在一项工作中一起执行(相同的日期和时间),也可以在不同的日期和时间单独执行。
让我们来看看这个场景。
任务名称:日期和时间方式
A - 2021 年 5 月 5 日上午 10 点
B - 2021 年 6 月 5 日上午 10 点
C - 2021 年 6 月 5 日上午 10 点
D - 2021 年 7 月 5 日上午 10 点
E - 2021 年 10 月 6 日上午 10 点
我选择在给定时间在自动化中执行这些任务。
注意:这是一项重复性工作,这意味着所有这些任务都应在该日期的每个月执行。
我正在为所有这些任务安排一个工作。
工作名称:自动化 - 根据第一个任务 A 时间在 2021 年 5 月 5 日上午 10 点醒来。
作业唤醒,开始执行任务A,完成任务A的执行。将相同的作业(名称:自动化)重新安排到任务B 的时间,即 2021 年 6 月 5 日上午 10 点。
工作名称:自动化 - 2021 年 6 月 5 日上午 10 点根据任务 B 时间醒来
作业唤醒,开始执行任务B,完成任务B的执行。将相同的作业(名称:自动化)重新安排到任务C的时间,即 2021 年 6 月 5 日上午 10 点。
现在这很好,但是
如果您注意到,任务E 的开始日期(2021 年 10 月 6 日上午 10 点)在下个月任务A 的开始日期(2021 年 5 月 6 日上午 10 点)之后。
根据这个算法,我不能重新安排任务 A 的工作,除非我完成所有任务直到 E。
PS:
出于可维护性的原因,我无法为所有这些任务创建不同的作业,因为用户可以删除、暂停、恢复、重新运行他们配置的任何自动化。(当任务更多并且每个人都有不同的工作时,它会变得混乱)。
我从我的同事那里得到建议,我们可以添加一个观察者服务,该服务将每晚检查我是否有任何约会即将到来,但该工作尚未安排在 Hangfire 中,如果是,则该服务将安排。
尽管如此,我觉得这会给观察者服务增加太多负担,因为它负责检查所有帐户的工作。
欢迎任何建议!:)
解决方案
推荐阅读
- powershell - Powershell初学者在这里,无法弄清楚如何将参数从函数传递到函数外部,就像这样
- python - Coverage.py 显示测试文件而不是 Flask 应用程序文件的覆盖率
- angular - Angular 9 如何绕过守卫中的特定路线?
- magento - 根据 magento 2 中的条件激活扩展
- python - 有没有办法在 groupby 中显示使用 python 不给出 0 的值?
- python - 如何对这个列表进行数字排序?
- java - BroadcastReceiver android - 有时它会在关闭应用程序后继续,有时不会
- api - microsoft graph api,如何从附加了共享邮箱的邮箱访问邮件
- php - 查找所有数组中存在的值 (PHP)
- python - 将列表中的项目与目录 python 中的名称进行比较