alguien conoce una funcion "wait" o similar

keber en ql.cl keber en ql.cl
Vie Dic 23 00:19:39 CLST 2005


"Ricardo Mun~oz A." <rmunoz en pjud.cl> dijo:

> El jue, 22-12-2005 a las 13:29, keber en ql.cl escribió:
> > Hola listeros,
> > tengo el siguiente problema:
> > 
> > Tengo un script php que revisa una base de datos, genera un archivo pdf y 
lo 
> > envía por correo. En teoría funciona bien.
> > Sin embargo, cuando son muchos los registros (genera un pdf por cada 
> > registro/envia un correo con ese pdf) el archivo se corrompe.
> > 
> > Es decir, al intentar ver el archivo el visor indica que está dañado. 
Esto no 
> > pasa para un solo registro, o dos. Se produce de forma aleatoria cada 
cierta 
> > cantidad de envios. Por ejemplo, de 25 registros, los primeros 3 se 
envían 
> > bien, los sgtes 2 llegan con el pdf corrupto, los sgtes. 3 se envían 
bien, y 
> > así (la cantidad de correctos/erroneos varía pero está entre 2 y 4).
> > 
> > Lo que estoy haciendo es generar el pdf, lo escribo en un archivo y luego 
lo 
> > attacho al mail (clase phpmailer). 
> > Pienso que puede ser provocado por un retardo en la escritura del 
archivo, 
> > demodo tal que en la siguiente iteración (registro k+1) el archivo no 
está 
> > disponible para ser sobreescrito.
> > 
> > En base a eso, he pensado en dos alternativas: dejar un wait() para darle 
> > algo de tiempo para que escriba el archivo, o hacer un thread_yield() 
para 
> > que en ese punto ceda la cpu a otro proceso, pero creo q' eso no está 
> > implementado en php.
> 
> puedes usar la funcion sleep() de PHP -> http://cl.php.net/sleep
> 
> > Alguna idea? voy a probar por ahora con un loop de algunos miles de 
> > iteraciones, pero no lo puedo admitir como solución, puesto que el script 
se 
> > ejecuta cada 5 min (cron).
> > 
> > Por último, lo ideal sería verificar que el archivo está disponible o 
algo 
> > así (si es que el problema es ese). Lo otro sería generar un nombre 
aleatorio
> > para cada archivo y luego borrarlos todos...
> 
> me tinca que los PDF podrian quedar corruptos al ser atachados en el
> mail... pero sin ver tu codigo seria dificil saberlo.

Si y no... no, por que de 26 correos q' envié con el script, 12 traían el pdf 
malo... por ejemplo, el 5º,6º y 7º traian el pdf ajunto corrupto, el 13 y 14 
idem, etc; el resto venían bien.
voy a probar con sleep(), thanks.
-- 





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