PHP: ob_start() e ob_end_flush() problemas no PHP 8.1
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.
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
Curtidas 0
Respostas
Marcio Moreira
10/08/2022
Uma informação relevante. Na versão 8 estou usando php-fpm
GOSTEI 0