Php max_execution_time не учитываетсяPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Php max_execution_time не учитывается

Сообщение Anonymous »

У меня есть комбинация Nginx и PHP-FPM, и я хочу, чтобы максимальное время выполнения на уровне PHP было таким же, как и на Nginx. Поэтому я добавляю max_execution_time=30, но это не работает.
Если я создаю конечную точку с такой логикой:

Код: Выделить всё

     foreach (range(1, 50) as $i) {
sleep(1);
if ($i > 40) {
$this->logger->error('Processing request', ['i' => $i]);
continue;
}

if ($i > 20) {
$this->logger->warning('Processing request', ['i' => $i]);
continue;
}

$this->logger->info('Processing request', ['i' => $i]);
}

$this->logger->info('Request processed');
и запустив этот скрипт через 30 секунд, я вижу 504 от Nginx, но PHP все еще обрабатывает запрос и записывает журналы. Что я делаю не так?
Обновление: сон вот лишь пример: при производстве для долго работающих конечных точек я также вижу ту же проблему, когда Nginx уже прервал выполнение но PHP все еще обрабатывает, выполняя какой-то запрос или что-то еще, и я не хочу, чтобы PHP был занят, если этого не должно быть... Я знаю, что это можно обработать на стороне FPM с помощью request_terminate_timeout, это будет SIGTERM, но в этом случае появляются новые проблемы, связанные с возрождением рабочих PHP, которые приводят к увеличению количества 504, которые даже вообще не достигают PHP, и чтобы исправить это, вам нужно увеличить количество дочерних процессов PHP, чего я не хочу делай.

Подробнее здесь: https://stackoverflow.com/questions/787 ... he-account
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»