Как Пассажир Phusion снова использует потоки и процессы?

Я думаю, ваши кварталы установлены на каждый год. Например:

1995-12-31
1996-03-31
1996-06-30
1996-09-31
1996-12-31
.... and so on

Если это так, просто найдите ближайшую дату из фиксированных квартальных дат.

Если quarter_end_series не совпадают даты для каждого года. Вы можете попробовать подзапрос вместо соединения. Как ниже:

SELECT DISTINCT ON ("date")
"date", (SELECT r.public_date FROM public_time r ORDER BY abs(date_diff(x."date",r.public_date)) ASC limit 1) as public_date
FROM   quarter_end_series as x
where x.date >= '1995-12-31 00:00:00'
ORDER  BY x."date";
10
задан pts 4 May 2009 в 20:14
поделиться

2 ответа

Вообще говоря, Passenger порождает новые процессы путем разветвления ApplicationSpawner, в котором фреймворк и код приложения предварительно загружены в память, или FrameworkSpawner, который содержит только код фреймворка.

Passenger, насколько мне известно , не имеет дело с потоками. Вместо этого, по мере увеличения нагрузки на приложение, он будет разветвлять ApplicationSpawner этого Application и инициализировать другой экземпляр. Когда нагрузка уменьшается, один или несколько экземпляров приложения уничтожаются.

Если Passenger настроен определенным образом (я полагаю, выбрав «умный» метод создания), он создаст FrameworkSpawner, который загружает код rails, но не код приложения, который затем может быть разветвлен для загрузки и приложения, использующего эту версию Rails.

Итак, чтобы ответить на ваши вопросы:

  • Он будет обслуживать их последовательно, а затем запускать дополнительные процессы, если решит, что нагрузка достаточно высока.

  • Нет. Один процесс может принадлежать только одному приложению Rails.

  • Я немного отрывочен по этому поводу, но ваш эксперимент имеет смысл. Пассажир должен быть достаточно умен, чтобы понять, что даже если он запускается из разных мест в конфигурации сервера, вы говорите об одном и том же приложении. Вероятно, это основано на пути к файловой системе приложения.

РЕДАКТИРОВАТЬ: Я пошел и немного прочитал об этом. Оказывается, я был в основном прав, но технические детали были немного неточными. См. Документацию для пассажиров

12
ответ дан 3 December 2019 в 20:43
поделиться

Yup, Burke is right. In case of the third question, Phusion Passenger recognizes applications by their application root path. So even if you have two virtual hosts, if they both point to the same DocumentRoot then Phusion Passenger will think that they're the same app.

6
ответ дан 3 December 2019 в 20:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: