@igoogex

Как передавать переменные сессии между независимыми скриптами?

Привет, начинающий веб-разработчик. Возникла проблема не могу дать ума. Это в первом файле:
// Сессия живет 24 часа
ini_set('session.gc_maxlifetime', 86400);

// Свой идентификатор сессии, нет куки
session_id('test');

// Заново или возобнавляем
session_start();

// Цена на рынке меняется динамически
for ($i = 0; $i < 100; $i++) {
     $_SESSION['price'] = $i;
     sleep(1);
}


Это во втором файле:
// Свой идентификатор сессии, нет куки
session_id('test');

// Заново или возобнавляем
session_start();

for ($i = 0; $i < 100; $i++) {
     echo $_SESSION['price'];
     sleep(1);
}


Скрипты запускаются кроном, предполагалось что второй скрипт всегда будет выводить актуальное на текущий момент значение переменной $_SESSION['price'] , но выводит одно и тоже значение которое было в переменной на момент первой итерации цикла и не меняется в процесе всего цикла, хотя руками открытый файл сессии показывает что оно - значение, меняется . Возможно что то не попонял в технологии сессии.
  • Вопрос задан
  • 71 просмотр
Решения вопроса 1
PavelK
@PavelK
Доброго дня.
Вроде бы пых лочит файл сессии либо до завершения скрипта, либо до вызова session_write_close(); а то при попытке одновременной записи хз что будет записано.
https://secure.php.net/manual/ru/function.session-...
Что бы между скриптами обмениваться данными, можете попробовать https://php.net/manual/en/ref.shmop.php
ну или сокетами https://habr.com/ru/post/209864/ ну или мемкэш https://habr.com/ru/post/108274/ ну или файл на диске и сериализация/десериализация из JSONa.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы