-2
質問があります。バックグラウンドで実行されているcronjobを使用して、ロードバランサと2つのWebアプリケーションのインスタンスがあります。 cronjobが2つのインスタンスの間で1回だけ実行されることをRailsで確認するにはどうすればよいですか?Cronが複数回実行されないようにするRails Loadbalancer
質問があります。バックグラウンドで実行されているcronjobを使用して、ロードバランサと2つのWebアプリケーションのインスタンスがあります。 cronjobが2つのインスタンスの間で1回だけ実行されることをRailsで確認するにはどうすればよいですか?Cronが複数回実行されないようにするRails Loadbalancer
両方のアプリケーションサーバーでcronを使用する必要がありますか?なぜ、1つのワーカーサーバーしか持たないのですか?
ジョブが実行されるサーバーを1つだけ持つことはできない場合は、ジョブが実行されたかどうかを示す値をデータベースに保存して、ジョブを実行する前にその値を確認することができます。 :
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
マヌエルの提案に感謝します。私は1つのワーカーサーバーを持っているという方向に向かって学習していましたが、両方のサーバーを同じに保つために、提案したような優れたソリューションが必要でした。 – wongkoty