¿No conoces el ChorriClub?

Comunidad, Cursos, Soporte y Herramientas
Mucho SEO y WordPress
Únete ahora con el descuento FOROBLACKHAT

Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5

excederé el tiempo de ejecucion?
#1

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?

Gracias

[Imagen: banner-acelerar-wp.jpg]
Responder
#2

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ó Sonrisa

Canal SEO en Telegram premium
Influenet - Compra/Venta de artículos patrocinados. Sonrisa
Responder
#3

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 Sonrisa

[Imagen: banner-acelerar-wp.jpg]
Responder
#4

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 xD

hvsombrilla, orgulloso de ser un miembro de Foro Black Hat SEO desde Apr 2014.
Responder
#5

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.

yuliet, orgulloso de ser un miembro de Foro Black Hat SEO desde Mar 2014.
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)
Telegram Grupo Telegram