February 17, 2014 04:29PM
Валентин Бартенев Wrote:
-------------------------------------------------------
> On Monday 17 February 2014 13:21:03 S.A.N wrote:
> [..]
> > Если я правильно понял, использовать keepalive конекта после
> > FCGI_END_REQUEST, не выйдет?
> > И есть только два варианта, отказаться от keepalive (без него эта
> схема
> > работает) или отказаться от fastcgi_finish_request (без него
> работает
> > keepalive)
> >
>
> Есть только один правильный вариант реализации выполнения тяжелых
> запросов:
> складывать их в очередь, которую затем разгребать отдельным процессом.

Я согласен, так стоит делать если операции не связаны с текущем состоянием процесса и не срочны для выполнения, тогда конечно их можно и нужно выполнять позже в отдельных процессах.
После fastcgi_finish_request() мы выполняем обновления кеша (если надо), который срочно будет нужен следующим запросам, обновления сессии юзера (если надо), в общем все эти работы привязаны к текущему состоянию процесса и должны выполнятся срочно.
Но юзер не должен ждать завершения их выполнения, он уже может получить готовый ответ, по этому все эти работы выполняются после fastcgi_finish_request()


> От того, что вы позвали fastcgi_finish_request() - у вас самый главный
> ресурс,
> PHP-процесс не освободился и обрабатывать другие запросы он
> по-прежнему не
> в состоянии.

PHP-FPM, создаст новый процесс, если запрос придет в новом конекте.
Но если юзать keepalive и новый запрос использует уже открытый конект с РНР процессом который работает в фоне, будет очередь ожидания и потом вылетит 502 ошибка, появления очереди логично, вот ошибка 502 это страно, по идеи запрос должен выполнятся нормально когда освободится процесс.

Пока что keepalive мы убрали, конекты плодятся РНР воркере тоже плодятся, все работает без очередей и ожиданий, но потеряли возможность повторного использования конектов (keepalive), потеря не велика конечно, но все же интересно можно эту схему реализовать на keepalive FastCGI
Subject Author Posted

fastcgi_keep_conn on и fastcgi_finish_request() в PHP

S.A.N February 15, 2014 03:36PM

Re: fastcgi keep conn on и fastcgi finish request() в PHP

Maxim Dounin February 17, 2014 09:40AM

Re: fastcgi keep conn on и fastcgi finish request() в PHP

S.A.N February 17, 2014 01:21PM

Re: fastcgi keep conn on и fastcgi finish request() в PHP

Валентин Бартенев February 17, 2014 02:28PM

Re: fastcgi keep conn on и fastcgi finish request() в PHP

S.A.N February 17, 2014 04:29PM

Re: fastcgi keep conn on и fastcgi finish request() в PHP

Maxim Dounin February 18, 2014 07:34AM

Re: fastcgi keep conn on и fastcgi finish request() в PHP

S.A.N February 20, 2014 08:27PM

Re: fastcgi keep conn on и fastcgi finish request() в PHP

Vladislavik January 18, 2019 01:12PM

Re: fastcgi keep conn on и fastcgi finish request() в PHP

Maxim Dounin January 18, 2019 05:30PM

Re: fastcgi keep conn on и fastcgi finish request() в PHP

S.A.N January 19, 2019 09:37AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 303
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready