Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: OVH - działanie Cron'a
Forum PHP.pl > Forum > Serwery WWW
trafas
Witam,

Mam mały problem z działaniem Cron'a w serwisie OVH.
Napisałem sobie skrypt pobierający dane z bramki z serwisu zewnętrznego - około 2500 rekordów.
W skrypcie ograniczyłem pobieranie danych po 500 rekordów jednorazowo.

Jak odpalam sobie skrypt w przeglądarce, to śmiga aż miło - aktualizuje wszystkie pobrane 500 rekordów.
Ale jak odpalam ten ssam skrypt z Cron'a, to nie wiem dlaczego ogranicza ilość aktualizowanych danych do mniej więcej 120 rekordów.

Czym to może być spowodowane questionmark.gif
Może juz ktoś z was spotkał się z takim czymś.

PS. Może ilość pobieranych danych stanowi problem - na maila między innymi otrzymuję warninga o treści - "Należy pamiętać, że rozmiar dzienników wysyłanych jest ograniczona do 50.000 znaków" o.O
abort
Tak, na to bym stawiał.
Cron ma to do siebie, że (o ile mu się tego nie zmieni) wyrzuca dane na
- standardowe wyjście (stdout)
- standardową konsolę błędów (stderr)

I teraz to wszystko (łącznie) jest po zakończeniu skryptu przesyłane mailem do użytkownika, który jest właścicielem procesu (czyli uzytkownika, który założył zadanie w cronie). Z tego co piszesz, OVH limituje wielkość tego pliku do 50KB.

Rozwiązanie jest właściwie tylko jedno: przekierować cronowy stdout do pliku (stderr zostawmy - komunikat o błędach dostaniesz mailem, IMO dość wygodne).
Prawdopodobnie po przekierowaniu stdout do pliku będiesz mógł wykonać skrypt bez problemów. Log czynności będziesz miał w pliku. Twoja decyzją jest to, czy te logi chcesz dostawać mailem (jeśli chcesz, w skrypcie dopisz sobie na końcu procedurę wysłania tego do samego siebie).

Oczywiście możesz też zmniejszyć ilość wysyłanego tekstu na stdout - może gdzieś nie zakomentowałeś jakiegoś zbędnego echo, które było przydatne w fazie debugowania?
trafas
No zobaczę co z tego wyjdzie wieczorkiem, dzięki za podpowiedź - napiszę później co z tego wyszło.

To jednak nie to - wywaliłem wyświetlanie jakiegokolwiek tekstu w wykonywanym skrypcie.
W treści maila przychodzi tylko coś takiego:


"
SAS OVH - http://www.ovh.com
2 rue Kellermann
BP 80157
59100 Roubaix


Bonjour,

Vous avez demandé l'envoi des logs pour la tâche :

Numéro : 50759
Heure de début : 2012-08-27 02:41:02
Heure de fin : 2012-08-27 02:41:10
Commande exécutée : /usr/local/bin/****
Code de retour : 0

L'utilisation de ce service est limitée à l'envoi de 10 emails.
Passée cette limite, vous pourrez le réactiver via votre Espace Client :

https://www.ovh.com/managerv3/

Attention, la taille des logs envoyés est limitée à 50'000 caractères.

-------------------------== Début ==-------------------------

X-Powered-By: PHP/5.2.17
Content-type: text/html

!DOCTYPE html PUBLIC -//W3C//DTD XHTML 1.0 Transitional//EN http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd

html xmlns=http://www.w3.org/1999/xhtml

head

meta http-equiv=Content-Type content=text/html; charset=utf-8 /

titleDokument bez tytu‚u/title

style

th{text-align:left; color:#06F; font-family:Courier New, Courier, monospace;}

tr{vertical-align:top;}

/style

/head



body


/body

/html

-------------------------== Fin ==-------------------------

"


Pomiędzy Début a Fin jest wyrzucane to, co zwraca mój skrypt - czyli można powiedzieć że nic nie zwraca - to są tylko znaczniki początku i końca dokumentu i tyle.
Spróbuję jeszcze zmienić ustawienie wersji PHP w cronie.



Ostatecznie problem rozwiązałem jeszcze inaczej.
podzieliłem pobieranie danych na mniejsze partie ( jednorazowo po 100 rekordów ).
Do tego z obsługi klienta OVH podrzucili mi pomysł żeby odpalać mój skrypt przez basha ( wtedy zachowuje się jakby był odpalony z poziomu przeglądarki ).
Po powyższych zabiegach pobieranie danych działa bezproblemowo smile.gif

PS. abort dzięki za zainteresowanie tematem
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.