Railsには、オブザーバのサポートだけでなく、before_validation、before_create、after_saveなどのフィルタセットが用意されていますが、フィルタまたはオブザーバは計算コストが非常に高い。私は代わりが必要です。Ruby on Railsプロジェクトのフィルタ/オブザーバの代替手段が必要
問題:Webサーバーのヒット数を多数のページに記録しています。私が必要とするのは、特定のページがX回以上閲覧されたときにアクションを実行する(たとえば、電子メールを送信する)トリガーです。膨大な数のページとヒットがあるため、フィルタやオブザーバを使用すると、時間の99%がテストされる条件がfalseになるため、無駄な時間が掛かります。メールはでなくですぐに送信する必要があります(つまり、5〜10分の遅延が許容されます)。
私が代わりに考えているのは、5分ごとにデータベースを掃引し、どのページがX回以上ヒットしたかを確認し、その状態を新しいDBテーブルに記録してから送信することです対応する電子メール。正確にエレガントではありませんが、うまくいくでしょう。
もっと良いアイデアはありますか?
私は徹底的に調査していないので、これを投稿したくありませんが、問題のドメイン内に 'rails cron'のgoogle検索がありますか?もしそうなら、私はあなたの質問がより具体的であるかもしれないと確信しています。 –
私は知っている!あなたが処理時間の99%を節約する、それが真実であるときだけ条件をテストしてください。 :D –