首页 > 解决方案 > 如何根据应用启动时间每小时执行一次hangfire作业

问题描述

我有一份从外部 api 请求特定信息的工作。如果我要求 hangfire 每小时执行一次上述作业,0 */1 * * *我的所有实例将同时访问 api(例如,在 09:00、10:00、11:00)。因此,api 将同时被我所有实例的请求所淹没。

问题:有没有办法定义一个 cron 表达式或配置,从应用程序启动的时间算起,每小时运行一次 hanfire 作业。它将随着时间的推移传播所有请求,并防止 api 被所有这些请求淹没。

例如:如果第一个实例在 8:35 开始,则作业将在 9:35、10:35、11:35 等运行。应用程序的第二个实例在 8:45 运行,则作业将在 9 点运行:45、10:45、11:45 等

或者也许有任何其他方法可以在所有实例中随机分布重复的作业执行?

标签: cronhangfire

解决方案


推荐阅读