Ver Mensaje Individual
  #2  
Antiguo 27-10-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Reputación: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Una idea:

Para empezar definiria dos tablas

tareas = (fecha, hora, tipo)
tipos = (volatil, diaria, semanal, mensual, anual, secular)

Cada vez que toque el turno de ejecutarse una tarea examinas su tipo.
  • Si es volátil (sólo se realiza una vez) ejecutas la tarea y borras el registro.
  • Si es diaria ejecutas la tarea y actualizas el campo fecha sumándole un día.
  • Si es semanal ejecutas la tarea y actualizas el campo fecha sumándole una semana.
  • etc.
Cada x tiempo consultas la base:

Código SQL [-]
select * from tareas
where
  fecha = today() and
  hora >= now()

La sintaxis exacta te la dejo de tarea (primera tarea a programar )

Las tareas del día actual que ya se hayan realizado no entrarán dentro de esta selección pues ya les actualizaste la fecha, de manera que la selección te devolverá las tareas más próximas al momento de la consulta que aún no se han realizado.

La precisión será mayor mientras más frecuentemente consultes al servidor. Si consultas, digamos, cada cinco minutos, cabrá la posibilidad de que alguna tarea se ejecute con cinco minutos de retraso.

// Saludos
Responder Con Cita