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

10/08/2022

0

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

Responder

Posts

10/08/2022

Marcio Moreira

Uma informação relevante. Na versão 8 estou usando php-fpm
Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar