Subscribe to comments. Evitar timeouts, error 500, cuando hay muchos suscriptores
Soy usuario del fantástico plugin suscribe-to-comments desde hace algún tiempo. Este plugin sirve para que los lectores del blog puedan suscribirse a los comentarios de un post recibiendo en su correo eléctronico un mensaje cada vez que alguien escribe un mensaje nuevo.
Sin embargo me encontré con un problema: cuando son muchos los suscriptores, el script php tarda bastante tiempo en dar respuesta por lo que la página termina en un error 500 o un timeout después de hacer esperar durante un buen rato al usuario que ha dejado un comentario.
Para solucionar esto he insertado las siguientes lineas en el archivo subscribe-to-comments.php al principio de la función send_notifications() en la línea 594.
// begin hack ignore_user_abort(true); set_time_limit(1); ob_end_clean(); $location = ( empty($_POST['redirect_to']) ? get_permalink($comment->comment_post_ID) : $_POST['redirect_to'] ); Header(”Location: “.$location); header(”Connection: close”); ob_start(); $size = ob_get_length(); header(”Content-Length: $size”); ob_end_flush(); // Strange behaviour, will not work flush(); // Unless both are called ! // end hack
La versión que he usado del plugin es:
Plugin Name: Subscribe To Comments
Version: 2.1
Agradezco la siguiente contribución de un usuario en el manual php que según cuenta, tardo más de 3 horas en encontrar la solución para cerrar la conexión con el navegador y que el script siga ejecutándose. http://php.mirror.camelnetwork.com/manual/en/features.connection-handling.php#71172


