Cómo implementar PHP para generar los resultados mientras se ejecuta

Durante el proceso de desarrollo, a menudo se requiere procesamiento por lotes. Por ejemplo, la sincronización de datos o la conversión de formato a menudo implican grandes lotes de procesamiento de datos. Debido a la gran cantidad de datos, a menudo hay varias diferencias en los datos, lo que hace que el proceso en ejecución sea propenso problemas, por lo que puede La salida en tiempo real del estado de ejecución de cada registro durante el proceso de ejecución (éxito o fracaso, el motivo del error y la información de los datos originales que causaron la excepción) es muy útil para solucionar problemas. Compartiré dos métodos de encapsulación simples aquí. Lo encuentro útil y espero que también lo sea para usted.

Primero demos una breve explicación: el primer método es llamarlo al frente del método que necesita generar en tiempo real; el segundo método es llamarlo cuando necesita generar contenido, por ejemplo:

public function testApi(){
    
    
	Tools::realTimeOutputPrepare();
	$i = 1;
	while($i < 100){
    
    
		sleep(1);
 		Tools::realTimeOutput($i++);
	}
    die;
}

Los contenidos específicos de estos dos métodos son:

/**
 * 实时输出内容准备(设置头部)
 */
public static function realTimeOutputPrepare(){
    
    
    header('X-Accel-Buffering: no');
    set_time_limit(0);
    ob_end_clean();
    ob_implicit_flush(1);
}
/**
 * 实时输出内容(清理缓冲区)
 */
public static function realTimeOutput($string){
    
    
    if(is_array($string)){
    
    
        $string = Tools::arrayToJson($string);
    }
    echo $string."<br>";
    flush();
}

Mi método está definido en una clase de herramienta llamada Herramientas en forma de método estático. Se recomienda que coloque estos dos métodos en su propia clase de herramienta, lo cual será muy conveniente de usar.

¿Míralo? Así de simple, si te sirve recuerda volver y darle me gusta, jaja

Supongo que te gusta

Origin blog.csdn.net/one_and_only4711/article/details/121095949
Recomendado
Clasificación