助けが必要です...
これは、私の問題を説明する一種の Rails 3.0.15 疑似コードです。
progress_bar = ProgressBar.create
record = Record.new
10000.times.do
record.bodies.build
progress_bar.inc
end
record.save
コードは 10000 個のレコードの本体を作成しますが、それらはトランザクション内にラップされているため、一度にコミットされます。これは問題ありません。
ProgressBar.create はテーブルにレコードを作成し、inc はカウンターをインクリメントする必要があるため、js プログレス バーはテーブルから現在のカウントを読み取って進行状況を更新できますが、inc によってトリガーされた ProgressBar の更新は Record トランザクション内にトラップされます。そして10000件のレコードをコミットしました...役に立たない!
トランザクション全体をコミットせずに、トランザクション内で更新を強制する方法についてのアイデアはありますか?
または、進行状況バーの現在の位置を保存するために、どのような代替ストレージを使用できますか?
よろしく