繁体   English   中英

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

[英]Trigger recurring Hangfire job from database script

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

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

Hangfire核心版本为1.7.5

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM