-2
我有一個問題,我有一個負載平衡器和我的web應用程序的兩個實例與在後臺運行的cronjobs。我怎樣才能確保在Rails中,cronjob只在這兩個實例之間運行一次?阻止Cron運行多次Rails負載均衡器
我有一個問題,我有一個負載平衡器和我的web應用程序的兩個實例與在後臺運行的cronjobs。我怎樣才能確保在Rails中,cronjob只在這兩個實例之間運行一次?阻止Cron運行多次Rails負載均衡器
您是否需要在兩臺應用服務器上都安裝cron?爲什麼不只有一個工作服務器?
如果你不能只有一臺服務器在作業運行,你可能會保存一個值給數據庫,指出作業是否已經運行,只是在執行作業之前查看該值, :
class BackgroundJob
def perform
return if performed_today?
JobRun.create!(performed_on: Date.today)
# Perform the job here
end
private
def performed_today?
JobRun.where(performed_on: Date.today).exists?
end
end
謝謝你的建議曼努埃爾。我正在朝着擁有一臺工作服務器的途徑學習,但我相信因爲要讓兩臺服務器保持一致,我們需要一個更好的解決方案,比如您提出的解決方案。 – wongkoty