2010-12-16 18 views
13

Tengo un script php que se ejecuta desde el servicio web y se inserta en DB.crontab con wget: ¿por qué se ejecuta dos veces?

crontab -e

 
......other cron tasks above....... 
... 
.. 
.. 
# Run test script.php at 1610 
10 16 * * * /usr/bin/wget -q -O /home/username/my_cronjobs/logs/cron_adhoc http://localhost/project/script.php 

Al parecer, a las 16:10, este script se ejecuta dos veces! 16:10:01 y 16:25:02

¿Es algo malo y tiene que ver con el uso de wget? ¿O configuré el programa en el trabajo cron erróneamente?

Cuando corro http://localhost/project/script.php desde el navegador, sólo se ejecutará una vez ..

Cualquier idea con respecto a este problema?

He probado, no hay otros usuarios ejecutando el mismo trabajo ... Sospecho que la forma en que funciona wget.

Como mi script necesita al menos 20 minutos para completarse sin enviar una respuesta (está extrayendo una gran cantidad de datos de webservicces y guardar en db) ... sospeche que hay un tiempo de espera o reintento de wget por defecto causando este problema.

+0

La pregunta obvia, ¿ha intentado ejecutar en la línea de comandos? –

Respuesta

5

Creo que resuelvo mi propia pregunta.

Mi php tarda un poco en cargarse, supongo que volverá a intentar o agotar el tiempo de espera después de un tiempo predeterminado predeterminado.

I resuelto mediante el uso de/usr/bin/php

1

¿De quién es el crontab de este usuario?

Compruebe si hay otro usuario para el que configuró el trabajo cron en otro momento y lo olvidó.

+0

solo configuré una, y ningún otro usuario configuró este trabajo usando wget – flyclassic

+0

¿es posible que el wget se ejecute dos veces? ¿Usar -mirror ayuda? – flyclassic

+0

y aquí está la respuesta para eso: http://stackoverflow.com/questions/134906/how-do-i-list-all-cron-jobs-for-all-users – dgig

13

The wget docs dar un defecto lectura de tiempo de espera de 900 segundos, o 15 minutos.

si, en cualquier momento de la descarga, no se reciben datos durante más de el número especificado de segundos, la lectura falla y la descarga se reinicia

Es por esto que estaban viendo la archivo llamado nuevamente 15 minutos después. Puede especificar un tiempo de espera de lectura más largo agregando el parámetro y una cantidad adecuada de segundos:

--read-timeout=1800 
Cuestiones relacionadas