servidor activo.

Ricardo Mun~oz A. rmunoz en pjud.cl
Lun Mar 27 14:39:19 CLT 2006


Rodrigo Espinosa escribió:

[...]

> Resulta que necesito, una vez generado un evento en una pagina web (PHP +
> MySQL), genere una serie de "eventos" programados en el tiempo,
> especificamente que envie correos con cierta periodicidad.
>
> Para extender la explicacion:
>
> 1.-Genero un reporte.
> 2.-Se envia un correo informando que se ha generado.
> 3.-30 minutos despues, se envia otro correo informando que ha pasado media
> hora y el evento no ha sido solucionado.
> 4.-90 minutos despues(de 2), se envia otro correo informando que ha pasado
> una hora y media, y el evento no ha sido solucionado.
> .
> .
> .
> 5.-evento solucionado.
>
> Lo que aun no se como realizar, son los puntos 3 y 4 (y otros mas, de la
> misma indole, si se definiera).
>   

podrias hacer lo siguiente:

- al generar el reporte envias el correo e insertas en la BD un registro 
(en una tabla)
  que indique la fecha/hora de la generacion del reporte.

- te creas un programa PHP que sirva como "monitor" de la tabla que 
contiene la
  info de los reportes generados. el monitor se encargara de revisar 
cada 1 minuto
  en la BD todos los reportes no solucionados y que hayan sido generados 
hace
  30min (punto 4) y 90min (punto 5),  envie los mails, etc.

- si usas Linux, el "monitor" lo puedes agregar en un crontab para ser 
ejecutado
  cada 1 min. con el comando 'crontab -e' y luego ingresando

  0-59/1 * * * * /usr/bin/php -q /ruta/monitor.php

obs. no necesitas tener corriendo el Apache, basta con el interprete de PHP
via linea de comandos.

-- 
Ricardo Mun~oz A.
Usuario Linux #182825 (counter.li.org)


Más información sobre la lista de distribución PHP