私のアプリでは、ユーザーは投稿のステータスを「v」-表示、「d」-削除のマークなどのさまざまなフラグに設定できます。
これらのフラグは、コントローラーアクションを介して設定されます。
削除のマークが付けられたすべての投稿を実行してクリーンアップするバッチプロセスがあります。
Post.find(:all、:conditions => ['status =?'、'd'])。each do | p | p.destroy終了
このバッチプロセスは、x分ごとに実行されます。
ユーザーが投稿に「d」のマークを付けたとします=>プロセスの実行中にバッチプロセスがいくつかのポイントで実行されます=>ユーザーが投稿に「v」のマークを付けます。これで、バッチプロセス内で、レコードはすでに削除の対象になり、doループが実行されたときになりますが、フラグはコントローラーアクションによって変更されました。
理想的には、これが発生した場合、バッチプロセスでその投稿を削除したくありません。
これを処理するための最良の方法は何ですか?