Я предполагаю, что для каждого запроса страницы веб-сервер (например, Apache) создает новый экземпляр скрипта в памяти. Могут ли эти экземпляры взаимодействовать друг с другом во время работы? и передавать данные тоже?
Если вы хотите передавать данные между скриптами в PHP, я предлагаю использовать либо memcached, либо базу данных. Или, возможно, APC.
Если сценарии относятся к одному и тому же сеансу, они теоретически могут взаимодействовать через сеанс, но в большинстве случаев это будет эффективно односторонней связью, потому что только один скрипт может получить доступ к сеансу в любой момент времени (session_start () блокирует сеанс до тех пор, пока скрипт завершает сеанс неявно или явно).
Я верю, что предложения Мартина и Клетуса действительны. Мой выбор будет функцией конечной цели скрипта.
Будут ли эти сценарии работать на разных серверах?
Плоские файлы с запирающим механизмом
Я думаю, что вы получите максимальную отдачу от внешнего процесса, так как у вас может быть более одной машины, управляющей сообщениями / данными, и более одного из них, производящих / потребляющих.
Модель, с которой работает PHP-скрипт, на самом деле не содержит понятия о сохраняемости в памяти для этих сценариев, поскольку в целом они предназначены для работы только в течение минимального времени, необходимого для обслуживания запрошенной страницы. Это затрудняло бы использование какого-либо значимого использования для обмена сообщениями между этими сценариями, поскольку, как правило, после того, как страница обслуживается, для скрипта больше ничего не нужно. Таким образом, обычно любая связь между PHP-скриптами выполняется больше посредством манипуляции с записями базы данных и т.п.
Если у вас есть какая-то непрерывная обработка, которая должна произойти, для которой вы хотите передавать данные, вам может понадобиться изучить другие модели веб-приложений, такие как сервлеты.
Вы должны иметь возможность сделать это с помощью некоторой общей памяти, как описано здесь: http://blog.taragana.com/index.php/archive/how-to-use-shared-memory-in-php/ (предполагая, не запускается в Windows)