excederé el tiempo de ejecucion?
Iniciado por Silvia77 · 30 may 2014 · 4 respuestas · 4754 visitas
Silvia77 Hola chicos
tengo una aplicacion (esta desarrollada en codeigniter, pero creo que eso dará igual para mi duda) en la cual hay un numero bastante alto de datos que tienen fecha de caducidad (es una intranet para un grupo de empresas donde , entre otras cosas, se crean fichas de maquinarias que tiene que revisarse cada x tiempo).
Necesito enviar un email automatizado de aviso cuando una de esas fechas este llegando. Por cada elementos que caduca de cada usuario: 1 email.
Mi idea es poner un cron que se ejecute todos los dias y compruebe las fechas en la base de datos (y las preferencias de usuario acerca de cada cuanto se envia dicho email) y envie los emails si procede. Pero me da miedo que si hay muuuuuuuuuchos registros a comprobar (que los habrá) pueda exceder el tiempo de ejecucion (no sería la primera vez que me pasa).
Alguien tiene experiencia con esto y me puede dar algun consejo?
GraciasSauron Una idea en el cron, en lugar de una vez al día que se ejecute varias veces al día y mire si le queda trabajo pendiente de enviar avisos, por lo que necesitas una tabla donde vas guardando los envíos que se han realizado correctamente, si no le dio tiempo a completar todos que continué la tarea por donde se quedó :)Silvia77 sip, creo que será una buena solucion, ademas de todos modos tengo que tener una tabla para saber si ya se envio alguna notificacion (para no mandarla todos los dias) por lo que podria darle tambien ese uso. gracias nico :)hvsombrilla También puedes agregar una columna LASTCHECK con el timestamp del último chequeo de cada producto. So, a la hora de revisar (que es bueno que sea cada 3 o 4 horas al día) se haga un "select * from productos WHERE LASTCHECK<(time stam actual - las horas que considere, en segundos claro) ORDER BY LASTCHECK ASC".
Lo de ordenarlo es para asegurarnos que queden arriba los que llevan más tiempo sin ser revisados. Así si el script se detiene a media ejecución podrá terminar en la próxima pasada.
Haciéndolo así puede hasta chequear cada hora y no creo que haya mucho consumo.
Suelte con eso Silvia, espero haberme dado a entender xDyuliet Iba a proponer una solución similar a la propuesta por @hvsombrilla
Con un campo del tipo "last checked" y el sql que solo muestre aquellos donde el last checked < fecha()-2 (por el tema de fines de semana), o el tiempo que quieras que pase entre aviso y aviso, para que así el resultado de la consulta sea más pequeño, el loop no tendrá que recorrer todos los registros de la tabla, sino solo los que cumplan con este criterio.
Este hilo pertenece al archivo del foro y ya no admite respuestas.
Otros hilos de esta sección
- Social Locker simple en HTML y JavaScriptSauron · 16 jun 201420 respuestas · 47.307 visitasÚltimo mensaje: 7 dic 2018
- Script para postear en diferentes grupos de Facebookrodrigol · 6 jun 201418 respuestas · 43.485 visitasÚltimo mensaje: 7 may 2018
- Scrapear con phytoncarlosse · 3 may 201411 respuestas · 24.557 visitasÚltimo mensaje: 19 mar 2017
- Desofuscar código JavaScriptSauron · 7 ago 20147 respuestas · 18.061 visitasÚltimo mensaje: 12 oct 2016
- Redirección .htaccess de un dominiowrongchris · 15 mar 20174 respuestas · 15.565 visitasÚltimo mensaje: 29 nov 2017
- Scrapear utilizando PHP nativo y la librería CurlSauron · 19 mar 20147 respuestas · 15.162 visitasÚltimo mensaje: 9 jul 2015
- Ayuda script para forzar a ver anuncio a los usuariosdobrick · 26 feb 20185 respuestas · 15.034 visitasÚltimo mensaje: 12 may 2019
- Duda para desarrolladores webharmonica · 8 may 20158 respuestas · 14.252 visitasÚltimo mensaje: 20 jul 2015

