Subscribe to comments. Evitar timeouts, error 500, cuando hay muchos suscriptores

22/4/2007 - -

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

2 Responses to “Subscribe to comments. Evitar timeouts, error 500, cuando hay muchos suscriptores”

  1. MadeInMiPueblo:

    Después de ver el hack del wordpress y este, me apunto tu blog en marcadores. Se ve que tienes buenas ideas.

  2. dekkers:

    hola ke tal he visto tu post y me gustaria pedirte tu ayuda, yo tambien he instalado el plugin subscribe to coments pero algo no devo de configurar bien porke las notificaciones ke deveria de enviar el correo ke he seleccionado para contestar a los usuarios, no llegan a su destino y el servidor de correo me devuelve un mensaje advertiendome de que fallo en el envio , y nose ke hacer haber si me echas una manita

Deja un comentario

Trencaspammers captcha