-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