簡體   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