alguien conoce una funcion "wait" o similar
Ricardo Mun~oz A.
rmunoz en pjud.cl
Jue Dic 22 14:37:35 CLST 2005
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.
--
Ricardo Mun~oz A.
Usuario Linux #182825 (counter.li.org)
Más información sobre la lista de distribución PHP