Если я создаю конечную точку с такой логикой:
Код: Выделить всё
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');
Обновление: сон вот лишь пример: при производстве для долго работающих конечных точек я также вижу ту же проблему, когда Nginx уже прервал выполнение но PHP все еще обрабатывает, выполняя какой-то запрос или что-то еще, и я не хочу, чтобы PHP был занят, если этого не должно быть... Я знаю, что это можно обработать на стороне FPM с помощью request_terminate_timeout, это будет SIGTERM, но в этом случае появляются новые проблемы, связанные с возрождением рабочих PHP, которые приводят к увеличению количества 504, которые даже вообще не достигают PHP, и чтобы исправить это, вам нужно увеличить количество дочерних процессов PHP, чего я не хочу делай.
Подробнее здесь: https://stackoverflow.com/questions/787 ... he-account
Мобильная версия