Estoy creando un trabajo cron que se ejecuta fuera de WordPress. Desde una perspectiva de desarrollo, esto hace que sea realmente fácil de depurar y crear scripts de limpieza o trabajos cron, simplemente ejecutando un comando como el siguiente en la línea de comandos:
php myfile.php
Mi problema es que WordPress retrasa de alguna manera toda la salida ... normalmente cuando ejecutas archivos php como este, la salida se genera en tu pantalla en tiempo real.
¿Alguien sabe cómo evitar que WP retrase toda la salida hasta el final del trabajo? Probablemente es un parámetro simple que me falta al ejecutar el archivo PHP, o una constante de algún tipo, pero no estoy seguro.
En el siguiente código, esperarías tener un retraso de 1 segundo entre cada salida, en cambio, actualmente tengo toda la información impresa al final, de una vez:
set_time_limit( 0 );
ini_set( "memory_limit", "64M" );
ob_start();
require_once( dirname( __FILE__ ) . '/wp-load.php' ); // you need to adjust this to your path
ob_end_clean();
global $wpdb;
$q = $wpdb->prepare ("SELECT * FROM wp_posts LIMIT 5");
$results = $wpdb->get_results ($q);
echo "found " . count ($results) . "\n";
foreach ($results as $post)
{
echo $post->post_title . "\n";
sleep(1);
}
echo "\n\ndone";