PHP: ob_start() e ob_end_flush() problemas no PHP 8.1

API

PHP

Back-end

10/08/2022

Utilizo os recursos de buffer em requisições web para não ficar "esperando" a conclusão do script. Exemplo: envio um comando/instrução qualquer, o script devolve um "ok" para o navegador, fechando a conexão, e continua com o processo mais demorado. No PHP 7.4 funcionava normal, porém no 8.1 ele permanece aguardando até o final do processamento.

Alguém tem alguma ideia de como resolver esse problema?

Vou colocar aqui um código bem simples utilizado nos testes onde incluo uma espera (speep), porém antes dele era pra (ou deveria) ter respondido ao navegador, encerrando a requisição, sem aguardar os 10 segundos.

<?php

ignore_user_abort(true);
set_time_limit(0);

ob_start();
echo json_encode([''status'' => true]);

header(''Connection: close'');
header(''Content-Length: ''.ob_get_length());

ob_end_flush();
ob_flush();
flush();

sleep(10);
die;
Marcio Moreira

Marcio Moreira

Curtidas 0

Respostas

Marcio Moreira

Marcio Moreira

10/08/2022

Uma informação relevante. Na versão 8 estou usando php-fpm
GOSTEI 0
POSTAR