2012-01-17 5 views
2

У меня есть две подобные вопросыКак PHP скрипт выполняет

  1. Как выполняет PHP скрипт. Например, у меня есть файл, который вызывается с определенными параметрами. Скажем, скрипт сначала начнет обработку запроса, затем подключится к базе данных, где он вставляет значения в таблицу, затем отображает или записывает отчет в текстовый файл. Допустим, PHP-файл был в середине вставки данных в базу данных, и появился другой запрос. Будет ли он обрабатывать этот второй запрос?

  2. Говорящий бой PayPal API и esp IPN Listner, PayPal советует держать слушателя минимальным. Так что скажем, что мой слушатель только что получил запрос об уведомлении о платеже с примерно 20 параметрами. Теперь я собираюсь сохранить их в базе данных, но в то же время хочу быстро освободиться, чтобы я мог поймать и другие запросы. Какая должна быть моя логика здесь? Использовать CURL или что-то подобное, чтобы отправить запрос на другую страницу, где данные вставляются в таблицу? Это позволит моему первому слушателю быть менее загруженным и быстрым. Это правильный подход? Или я должен сделать ввод данных в основном слушателе.

Примечание: Я проверил How exactly is a PHP script executed? и ответ их есть один час лекции на PHP Internal. Не ясный ответ.

+0

Вопрос №1: Каждый HTTP-запрос, выполняющий PHP, запускается как отдельный полностью независимый поток, поэтому ваш первый скрипт не прекратит выполнение, когда будет получен второй запрос ... они будут завершены. –

+0

, так что первый запрос посередине, второй приходит. Они оба будут отделены друг от друга?Дело не в том, что, поскольку сценарий был занят в первом скрипте, он будет пропускать второй? –

+2

Если вы не блокируете ресурсы (такие как файлы сеансов), которые __deliberately__ совместно используются между двумя процессами, они будут работать независимо. –

ответ

1

Как выполняется скрипт php. Например, у меня есть файл, который вызывается с определенными параметрами. Скажем, скрипт сначала начнет обработку запроса, затем подключится к базе данных, где он вставляет значения в таблицу, затем отображает или записывает отчет в текстовый файл. Допустим, PHP-файл был в середине вставки данных в базу данных, и появился другой запрос. Будет ли он обрабатывать этот второй запрос?

Будет использоваться отдельный экземпляр PHP.

Говорящий бой PayPal API и esp IPN Listner, PayPal советует держать слушателя минимальным. Так что скажем, что мой слушатель только что получил запрос об уведомлении о платеже с примерно 20 параметрами. Теперь я собираюсь сохранить их в базе данных, но в то же время хочу быстро освободиться, чтобы я мог поймать и другие запросы. Какая должна быть моя логика здесь? Использовать CURL или что-то подобное, чтобы отправить запрос на другую страницу, где данные вставляются в таблицу? Это позволит моему первому слушателю быть менее загруженным и быстрым. Правильно ли это? Или я должен сделать ввод данных в основном слушателе.

Нет, cURL блокирует, так что это только ухудшит ситуацию. Просто делайте это в основном файле PHP, к которому обращаются - если 20 человек сразу попадают в цель, ваш веб-сервер не должен беспокоить их.

3

PHP-скрипт будет функционировать так, как он должен, независимо от того, сколько раз он вызывается. если php выполняется и запрашивается снова, он создаст новый «экземпляр» этого php, который будет работать вместе с другой уже запущенной копией, чтобы вы не получили прерывания.

IPN-прослушиватель является примером такого рода транзакций. Каждый запрос URL-адреса от paypal будет обрабатываться отдельной копией скрипта php и обрабатываться полностью без перерывов.

Смежные вопросы