Railsには優れたフィルターのセット(before_validation、before_create、after_saveなど)とオブザーバーのサポートがありますが、フィルターまたはオブザーバーに依存することは計算コストが非常に高いという状況に直面しています。別の方法が必要です。
問題:Webサーバーのヒットを多数のページに記録しています。必要なのは、特定のページがX回以上表示されたときにアクション(たとえば、電子メールを送信する)を実行するトリガーです。ページとヒットの数が非常に多いため、フィルターまたはオブザーバーを使用すると、99%の時間、テストする条件が偽になるため、多くの無駄な時間が発生します。電子メールをすぐに送信する必要はありません(つまり、5〜10分の遅延が許容されます)。
代わりに私が検討しているのは、データベースを5分ごとにスイープし、どのページがX回以上ヒットしたかを確認し、その状態を新しいDBテーブルに記録してから、対応する電子メールを送信する、ある種のプロセスを実装することです。正確にはエレガントではありませんが、機能します。
他の誰かがより良いアイデアを持っていますか?