从数据库脚本触发重复的 Hangfire 作业

Trigger recurring Hangfire job from database script

我有一个非常复杂的 sql 脚本来清理我的数据库,并且会不时地手动 运行。在脚本 运行 之后,我必须立即开始一个经常性的 hangfire 作业,通常每天只执行一次。

为了不忘记 运行 脚本,我想 直接从 sql 脚本 触发执行。有没有一种简单的方法来修改其中一个 hangfire table 来完成这个任务?

Hangfire核心版本为1.7.5

更新: 不幸的是,我没有找到任何包含重复作业的 hangfire table。因此我猜他们根本没有坚持。 是否可以通过在 HangFire.Job table 中插入一个新行来 运行 一份工作?或者这是个坏主意?

很抱歉没有在 Whosebug 上跟进这个问题。由于缺少纯 hangfire 解决方案,我终于在 单独的“DatabaseState” table 的帮助下实现了一些自定义逻辑.

我的 DatabaseState table 具有以下字段:DateOfDbUpdate(datetime) 和 HangfireExecuted(bool)。每当我 运行 我复杂的 SQL-脚本时,我只是在 table 中插入一个新条目,其中包含当前时间和 HangfireExecuted = false.

在代码中,我创建了一个 循环 hangfire 作业,它每隔几秒检查一次 DatabaseState table 中是否有 HangfireExecuted == false 的新条目。如果找到这样的条目,它将开始清理作业。

不幸的是,这不是一个非常干净和直接的解决方案。如果有人提出真正的 hangfire 解决方案,我会很高兴。