Ответ найден, спасибо лжеюзеру vladsm. Оказывается, процесс блокирует
незакрытая сессия. Если перед долгой операцией вызвать
session_write_close(), то всё работает нормально.
On 12 авг, 02:18, david <david.mzareul...@gmail.com> wrote:
> Имеется скрипт, который принимает POST-запрос, что-то быстро делает,
> выдаёт 302-й редирект, после чего вызывает fastcgi_finish_request() и
> делает что-то ещё (относительно долго).
>
> Так вот, наблюдается следующая картина. Браузер, как полагается,
> быстро получает редирект, пытается перейти и... ждёт, пока не
> отработается долгое действие. Только после этого он получает страницу,
> на которую должен быть переход. То есть, ощущение такое, что некая
> "сессия" (keep-alive соединение?) жёстко привязана к одному процессу
> PHP-FPM, и пока одна задача не отработает, вторая не запускается.
> Несмотря на fastcgi_finish_request.
>
> Скажите, в чём тут может быть дело и как с этим бороться, потому что
> хочется всё-таки, чтобы долгие задачи после fastcgi_finish_request не
> блокировали работу юзера.
>
> Да, всё это происходит за nginx-ом, версия php -- 5.3.3.