本番環境にシャーディングを実装しようとしています。私たちが直面している問題は、バックグラウンド処理を処理する遅延ジョブがあることです。モデルを更新し、遅延ジョブの処理のために遅延ジョブにエントリを入れると、そのオブジェクトの古い値がフェッチされ、一貫性がなくなります。たとえば、ユーザーモデルには名前、位置があり、位置が変わるたびにメールをトリガーしたい場合は、次のようになります
usr = User.find(1)
usr.position = "foo"
usr.save
遅延ジョブで usr = User.find(1) をフェッチすると、古い値がフェッチされます。私たちは本番環境でパッセンジャーを使用しています.mysqlはまだRails 2.3.18です。アプリ アクションでも同じ問題に直面する前に、mysql クエリ キャッシュのバグが原因で使用を停止し、問題はアプリ アクションで解決されました。