Tengo una duda sobre un tema que me estoy liando es solo una idea que tengo en mente y que aún tengo dudas y me guaría si alguna alma caritativa me pudiese ayudar.
Voy a colocar un ejemplo bastante simple, sin código ya que no hace falta para la duda ya que el problema no es el funcionamiento del script.
Tenemos un a tabla de 2 registro pero podrían ser de registros variables, pongo dos para hacer el ejemplo:
ID usuario
HORA INICIO HORA ENVIO FECHA
1
[email protected] 12:00 14:00 2/10/2014
2
[email protected] 9:03 11:03 2/10/2014
Cada usuario tendría un botón para hacer click y según la hora de hacer el click se calcula dos horas después de hacer click y guarda la hora de hacer clik (HORA INICIO) y dos horas después (Hora envió).
Bueno ahora tenemos un script que se ejecuta con cron cada media hora, este script compara la HORA ENVIO de la tabla con la hora actual y si en el bucle algún usuario tiene coincidencia de
HORA DE ENVIO CON
HORA ACTUAL le envía un mail. Resumiendo cada dos horas,después de hacer click, se enviaría un mail a la dirección indicada.
Tengo que destacar que me parece mas acertado poner en el script la condición de si es igual o mayor de dos hora se envié. Por otra parte también quería comentar que la fecha esta para seleccionar los registros por día y no volver a enviar los de los días anteriores.
La gran duda que tengo es que si algún registro cumple con la condición, de que pasa dos horas, pero el script no se ha ejecutado con cron. No se enviaría y aún que por si acaso el script tarda bastante en ejecutarse o pasa lo anterior comentado pondría que se ejecute si son dos horas o mayor de dos horas.Pero mi intención es que se ejecute cada dos horas.
Por ejemplo este caso:
2
[email protected] 9:03 11:03 2/10/2014
Como se puede observar abajo el script de ejecutaría a las 11:00 y 11:30 y dado que
el email se debería de enviar a las 11:03 no se enviaría.
El script de cron se ejecutaría cada media hora:
Primera ejecución 9:00
Segunda ejecución 9:30
Tercera ejecución 10:00
cuarta ejecución 11:30
quinta ejecución 12:00
...
Una solución seria estar ejecutando el script cada minuto pero un colega me comento lo que yo también me temía que son muchas consultas cada minuto.
Alguna idea, muchas gracias