[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как работает php?
iVasya
В манах для новичков, которые я читал, нигде не говорилось о том, как работает php. Везде кратко описывают модель "пришел запрос на сервер, сервер вызвал пхп скрипт, который отработал и отдал ответ серверу, а сервер послал его клиенту (браузеру).
Но тут нету объяснения самого главного, а именно:

Римское один:
Вася зашел на ololo.php
Этот ololo.php отрабатывает дооолго. Вася сиди ждет, ждет...
А в это время (пока Васин запрос всё еще обрабатывается скриптом ololo.php) Петя тоже запросил ololo.php
И вот что происходит в этот момент? Нигде про это ни слова.
1) Петин запрос становится в очередь и ждет, пока закончит отрабатывать Васин запрос?
2) Петин запрос стартует в отдельном процессе (потоке? не знаю как тут правильно с терминологией) и соответсвенно Петя не ждет, пока отработает Васин запрос?

Римское два:
И на сколько я понимаю, ответ на мой вопрос может быть разным, в зависимости от того, синхронный или асинхронный (daemon io, например) код находится в ololo.php, да?
TranceIT
Запросы не становятся в очередь, а обрабатываются параллельно, пока хватает оперативной памяти на сервере.

Для некоторых задач бывают исключения. Например запросы на запись в файл обычно ставят в очередь.

_____________
Безвозмездно помогаю только тем, кто сам пытается что-то сделать.

Остальным за WMR
Даже если там 10 строк кода!
Даже если мне это ничего не стоит!
Даже если вы нуб!

user posted image
FatCat
Цитата (TranceIT @ 14.10.2013 - 11:37)
Запросы не становятся в очередь, а обрабатываются параллельно, пока хватает оперативной памяти на сервере

Именно для того, чтобы памяти хватало всегда, мы и конфигурируем апач: сколько максимально может быть параллельных запросов (MaxClients); разрешена ли постановка в очередь, если количество запросов превысило допустимое (KeepAlive), максимальное количество запросов в очереди (MaxKeepAliveRequests), время ожидания в очереди (KeepAliveTimeout), максимальное время ожидания, после которого отдается 502-я страница (Timeout).

_____________
Бесплатному сыру в дырки не заглядывают...
Invis1ble
Цитата (FatCat @ 14.10.2013 - 13:33)
Цитата (TranceIT @ 14.10.2013 - 11:37)
Запросы не становятся в очередь, а обрабатываются параллельно, пока хватает оперативной памяти на сервере

Именно для того, чтобы памяти хватало всегда, мы и конфигурируем апач: сколько максимально может быть параллельных запросов (MaxClients); разрешена ли постановка в очередь, если количество запросов превысило допустимое (KeepAlive), максимальное количество запросов в очереди (MaxKeepAliveRequests), время ожидания в очереди (KeepAliveTimeout), максимальное время ожидания, после которого отдается 502-я страница (Timeout).

KeepAlive вроде про другое (поддержка постоянных соединений), хотя утверждать не буду

_____________

Профессиональная разработка на заказ

Я на GitHub | второй профиль

Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.