複数のワーカーを実行するセットアップで遅延ジョブを使用しています。私の質問のために、それはあまり重要ではありませんが、10 個のワーカーを実行しているとしましょう (現在は開発モードで実行しています)。
私が抱えている問題は、ジョブ オブジェクトの perform メソッドを呼び出して、2 人の異なるワーカーが同じジョブで作業を開始することがあるということです。
私の理解の範囲では、Delayed Job は悲観的ロックを使用してこれが起こらないようにしていますが、最初のワーカーが実際にロックする前に、ジョブをロックするのに十分な時間があるようです。
他の誰かがこの問題を経験したかどうか、または私の設定が正しくないかどうかを確認したいだけです。私は Postrgres を使用していますが、これは開発マシンとホストしている Heroku の両方で発生します。
私は自分の仕事の中でそれを回避しようとしますが、これが起こるのはまだ少し問題があります. 理想的には、遅延したジョブが 2 つのプロセスから同じジョブで動作することは決してありません。
ありがとう!