Как Пассажир решает, когда начинать новый процесс, и могу ли я каким-либо значимым образом настроить, сколько процессов он должен обрабатывать (кроме «умных» и «консервативных» флагов в конфигурации?) Как вариант, есть ли способ? отладить, почему приложение rails, работающее под Phusion, внезапно зависло?
Справочная информация:
Я использую Phusion Passenger с сервером Apache2, и по большей части все идет хорошо. Я меньше беспокоюсь о загрузке и больше беспокоюсь о блокировке: обычный монгрел свяжет все приложение, если он использует метод длинного контроллера (скажем, метод, который спит в течение десяти секунд), и никакая другая веб-страница не может обслуживаться до метод завершен. С помощью Passenger я могу использовать тот же метод, но при этом открыть новый браузер и без проблем выполнить быструю загрузку страниц того же приложения.
ИНОГДА.
И это «иногда» является проблемой. Если метод занимает достаточно много времени (в моем случае, вызов внешней сети, который никогда не возвращается), все приложение снова будет зависать, даже при разветвлении всего потока или что-то еще.
Насколько я понимаю, способ работы Пассажира заключается в том, что он как бы разветвляет новые экземпляры рельсов каждый раз, когда это необходимо, обычно в условиях одновременного подключения слишком большого количества людей.
Хотя, похоже, он работает с длинными методами ... но я не вижу ссылок на то, как и почему (или, что более важно, как настроить или настроить этот процесс). Или даже как выяснить, в чем может быть проблема (Нужно ли разрешать Phusion отключаться от БОЛЬШЕ потоков, не работает ли он с длинными методами в течение определенного промежутка времени?)