Есть скрипт парсера всего сайта с использованием curl. Время выполнения > 15с.
Во время выполнения, он записывает свое состояние во временный файл status.txt.
На клиенте:
Ajax запросом запускается парсер и пока он не завершит работу посылаются параллельные запросы для получения его состояния из файла status.txt.
Все работает, и пользователь видет, что сканируется на данный момент. но, если пытаюсь вместо status.txt параллельно запросить скрипт status.php, даже просто выводящий значение переменной сессии, он встает в очередь и ждет пока закончит выполнение скрипт парсера.
собственно вопрос почему? или как заставить скрипт status.php не ждать выполнения парсера?
потестив понял, что не запуская во втором скрипте сессию session_start() он не ждет первый скрипт. А мне как раз и надо получить переменную сесии из основного скрипта (парсера), которую он создает в саммом начале своего выполнения.
принудительно закрыл сессию session_write_close(); в парсере.
Не знал что одному пользователю нельзя запускать более одной сессии на сервере.
Еще раз убедился что прежде чем писать на хабр, надо повторять мат. часть.
Можно запускать, просто файл с сессией лочится при первом доступе. Можно либо использовать session_write_close();, но тогда могу возникать проблемы с целостностью данных, либо использовать другой хэндлер для сэссий, например, базу.