Heroku スタック (Memcached、DJ 非同期ワーカー、MongoDB 永続ストレージを完備) で Rails アプリを実行しています。
現在、当サイトでは Twitter Oauth を唯一の認証オプションとして使用しています。(最終的には、FB コネクト、OpenID、および/または電子メール/パスワードに拡張する予定です)。
おそらくご存じのとおり、Ruby/Rails アプリはそのままでは同時実行をサポートしていません。Heroku では、追加のアプリ インスタンス (dyno) をスピンアップして、同時実行数 (同時実行能力 = dyno の数) を増やすことができますが、それぞれ 36 ドル/月の費用がかかります。
サイトでの平均リクエストは 100 ミリ秒未満であるため、通常、これは問題ではありません。
Twitter OAuth を除く。Twitter への OAuth 関連のリクエストには、平均で約 3,500 ミリ秒かかります。
基本的に、誰かがログインすると、アプリ インスタンス全体が 3 ~ 4 秒間停止します。
これを軽減する適切な方法はありますか?これらのアクションを非同期 DJ ワーカーに入れるのは変ですか? ログインが少し遅くなる可能性がありますが、少なくとも多数の人が一度にログインしている場合や Twitter が非常に遅い場合、これらのプロセスはアプリの残りの部分や他の Web リクエストに影響しませんか?
他のアイデアはありますか?