Я использую приложение Rails в стеке Heroku (в комплекте с Memcached, асинхронными рабочими DJ, постоянным хранилищем MongoDB).
В настоящее время мы используем Twitter Oauth в качестве единственной опции аутентификации на нашем сайте.(Мы планируем перейти на FB connect, OpenID и / или Email / пароль в конечном итоге.)
Приложения Ruby / Rails, как вы, вероятно, знаете, не поддерживают параллелизм из коробки.В Heroku вы можете раскрутить дополнительные экземпляры приложений (dynos), что увеличит ваш параллелизм (возможность параллелизма = количество dynos), но каждый стоит 36 $ / месяц.
В общем, это не было проблемой, потому что средний запрос на сайте занимает <100 мс.</p>
ИСКЛЮЧИТЬ для Twitter OAuth.Связанные с OAuth запросы в Twitter занимают в среднем около 3500 мсек.
Таким образом, когда кто-то входит в систему всего экземпляра приложения, его задерживают на 3-4 секунды.
Есть ли приличный способ смягчить это?Было бы странно помещать эти действия в асинхронных диджеев?Это может сделать вход немного медленнее, но, по крайней мере, если сразу несколько людей входят в систему и / или Twitter действительно работает медленно, эти процессы не влияют на остальную часть приложения / другие веб-запросы?
Есть еще идеи?