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

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