jerry89
16.05.2009, 15:13:38
Witam.
Mam dosyc nietypowy problem. Napisałem skrypt, który obciąza nieco serwer, wykonuje sie tez dosyć dlugo jednak moim zmartwieniem jest to, że bywa czasami tak, że skrypt złapie zawieche.Nie da się juz go raczej zoptymalizować bo działanie nie zalezy tylko od mojego serwera. Chcialbym znaleźć jakieś rozwiązanie tego problemu, tak bym wiedział np kiedy skrypt sie zawiesi i ew jakis sposób na wznowienie jego działania. Dodatkowo dodam ze nie mogę ciągle siedzieć i pilnować jego wykonywania, gdyż wykonuje się on dosyc dlugo.
Czy istnieje jakiś rozsądny sposob na takie działanie? Prosiłbym o jakieś sugestie.
Możesz dokupić wyrocznię do serwera i później zwyczajnie otwierać socket do
/dev/oracle, by sprawdzić, czy skrypt się zawiesi, czy nie. Niestety, są to dość drogie urządzenia

.
Na serio - nie powiedziałeś, co rozumiesz pod pojęciem "zwiecha", bo zwiecha może mieć różne oblicza. Skrypt może się zapętlić, wtedy ewidentnie jest to błąd kodu i jest do naprawienia. Skrypt może przekroczyć limit czasu i wtedy jedynym wyjściem jest po prostu podzielenie zadania na mniejsze części i wykonywanie go po kawałku.
jerry89
16.05.2009, 17:20:38
Przekroczenie czasu nie wchodzi w gre bo to ustawiłem na wystarczajacy.. A zwiecha.. hm po prostu skrypcik dziala, daje wyniki a tu nagle zaczyna tkwic w miejscu, nie wywalając przy tym zadnego miejscu. Błędu w kodzie nie ma, bo nie zawsze sie tak dzieje.
A o jakim konkretnie wykonaniu "po kawałku" mówisz?
Programy się same z siebie nie zawieszają. Nie ma żadnych przeciwwskazań, aby skrypt PHP wykonywał się i cały dzień - w nim przecież można normalne aplikacje okienkowe robić. To, że coś nie zawsze się dzieje, nie jest równoznaczne temu, że błędu nie ma. Piszesz, że skrypt zależy od jakichś zewnętrznych procesów, więc możliwe, że jakaś ich odpowiedź (lub jej brak) może generować zapętlenie.
Wykonywanie po kawałku - tak, jak w phpMyAdminie masz możliwość importowania dużych plików "po kawałku", tj. najpierw pierwsze n zapytań, potem kolejne n itd. Też możesz spróbować podzielić tak swoje zadanie.
jerry89
16.05.2009, 17:29:23
W moim przypadku takie wykonanie po kawalku chyba nie na wiele sie zda. A skrypt zalezy od odpowiedzi innej strony WWW na zapytania skryptu. Mogę coś jeszcze w konfiguracji przestawic oprocz czasu wykonywania skryptu by było 'lepiej' ?
230005
16.05.2009, 17:35:27
Zyx dobrze gada

. Może napisz lepszą obsługę odpowiedzi tej innej strony. Sprawdź czy ten inny serwis wysyła do twojego skryptu to czego się spodziewasz, a jeśli nie to wyłap wszystkie niespodziewane rzeczy :].
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.