При запуске длинного запроса из PHP [как] я могу убить запрос, если пользователь нажимает кнопку остановки в своем браузере?
Учтите, что я не могу вызывать какие-либо другие функции PHP, потому что PHP блокируется, ожидая MySQL.
Также я не могу делать больше запросов на сервер (через Ajax) из-за блокировки сеанса.
Таким образом, одним из решений может быть:
- игнорировать пользовательский прерывание
- запустите длинный запрос в фоновом режиме и проверьте PHP каждые 100 мс, если он закончил.
- получить pid из запроса
- если пользователь прерывает, убивает pid
- else возвращает результат при завершении
2 вещи, которые я не знаю, как это сделать:
- запустить неблокирующий (фоновый) запрос
- получить pid запроса