2010-12-16 13 views
13

Mam skrypt php, który działa z usługi internetowej i wstaw do DB.crontab z wget - dlaczego działa dwa razy?

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 

Podobno na 16:10, to skrypt jest uruchamiany dwa razy! 16:10:01 i 16:25:02

Czy to jest coś złego i musi zrobić z wykorzystaniem wget? A może źle ustawiłem harmonogram pracy crona?

Kiedy biegnę http://localhost/project/script.php z przeglądarki, to będzie działać tylko raz ..

Każdy pomysł odnośnie tego problemu?

Testowałem, nie ma innych użytkowników wykonujących tę samą pracę ... Podejrzewam, że działa wget.

Ponieważ mój skrypt potrzebuje co najmniej 20 minut do wykonania bez wysyłania odpowiedzi (ciągnie wiele danych z serwisów internetowych i zapisuje do bazy danych) .. podejrzewa, że ​​domyślnie wystąpił problem z opóźnieniem lub ponownym uruchomieniem wget.

+0

Oczywiste pytanie, czy próbowałeś uruchomić w wierszu poleceń? –

Odpowiedz

5

Myślę, że mogę rozwiązać moje własne pytanie.

Mój php zajmuje trochę czasu, aby załadować, myślę, że wget ponawia próbę lub limit czasu po określonym domyślnym czasie.

I rozwiązać go za pomocą/usr/bin/php

1

Czyj to jest crontab użytkownika?

Sprawdź, czy jest inny użytkownik, dla którego skonfigurowałeś zadanie cron w innym czasie i zapomniałeś o tym.

+0

Ustawiłem tylko jeden i żaden inny użytkownik nie skonfigurował tego zadania za pomocą wget – flyclassic

+0

czy to możliwe, że wget wykonuje dwa razy, czy używając -mirror help? – flyclassic

+0

i oto odpowiedź na to: http://stackoverflow.com/questions/134906/how-do-i-list-all-cron-jobs-for-all-users – dgig

13

The wget docs dać domyślnego odczytu-timeout 900 sekund lub 15 minut.

jeżeli w dowolnym punkcie pobierania, nie dane są odbierane przez ponad określona liczba sekund, czytanie kończy się niepowodzeniem i pobierania wznowiona

To dlaczego pan widząc plik o nazwie ponownie 15 minut później. Można określić dłuższy czas odczytu, dodając parametr i odpowiednią liczbę sekund:

--read-timeout=1800 
Powiązane problemy