0

私はVoteというモデルを持っていますが、これは非常に頻繁に変更されます(人々が投票する)。投票が保存された後、投票者が男性/女性かどうか、年齢などを補間するなど、他の分析を行います。これにより、同じモデルのカウンター(大人の投票、女性の投票など)が更新されます。

保存処理後にこれを行うための最良の方法は何でしょうか、これはバックグラウンドジョブ(delayed_jobプラグインを使用します)にするべきですか、それともafter_saveコールバックとして残すのが最善ですか?パフォーマンスの観点からもどちらが優れていますか?

ユーザーに2番目に新しいデータを表示する必要はありません(after_saveコールバックでさえそれを達成しません)。

ありがとう

4

1 に答える 1

1

私の親指のルールは、完了するのに(平均して)1秒以上かかる場合は、バックグラウンドジョブにプッシュします。それ以外の場合は、同期を維持します。私は遅れた仕事を使います、それはうまくいきます、そして私はそれを去る理由がありませんでした。バックグラウンドジョブでデータベースにアクセスする必要がなく、カスタムrakeタスクを使用したケースが1つありました。これは非常に効率的で、バックグラウンドジョブプロセッサを実装する必要がありませんでした。

于 2010-07-20T04:10:35.887 に答える