簡體   English   中英

Shedlock 和臨時停止任務?

[英]Shedlock and temporary stop task(s)?

在多台服務器上運行多個計划任務時,Shedlock 看起來很棒,但有時,我們也需要短時間或長時間地暫停一些任務。 當然,可以使用附加屬性/標志來控制每個任務,但我的建議是也為此使用 Shedlock,並為我們希望停止的任務引入邏輯“節點/服務器”,並更新 shedlock 中的行- 鎖定該節點的表,並在未來設置一個lockedAt 時間,並將lockUntil 設置為future + 1 秒(因此不會觸發超過maxRunning 的時間)。 然后它將自動重新啟動,或者我們可以 go 並在需要時將時間移到未來。

對 Shedlock 的這種使用有什么想法……聰明還是壞習慣? 它仍然用於鎖定,只是將作業鎖定到邏輯假服務器。

為此,有可能(誤用)ShedLock。 您正在查找的更新可能如下所示:

update shedlock set lock_until = :future, locked_at = now(), locked_by = "manual" where 
      name = :name and lock_until < now()

重要的部分是條件lock_until < now() ,它可以防止干預正在運行的任務的現有鎖。 您不必設置locked_by ,因為它大多被庫忽略。 最好設置它以防其他人想知道為什么沒有執行任務。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM