Skocz do zawartości
Forum komputerowe PC Centre
darek_dade

PHP i dlugo egzekujace sie skrypty

Rekomendowane odpowiedzi

Mam skrypt, ktory zgarnia dane z innego serwera strona po stronie (na jedna strone przypada powiedzmy 100 elementow). Sytuacje najprosciej bedzie wytlumaczyc wg takiego scenariusza:

 

Wysylam zapytanie do serwera, w odpowiedzi dostaje pierwsza strone z pierwszymi 100 elementami, jednak w sumie elementow jest kilkadziesiat tysiec wiec stron kilkaset. Przetwarzam dane zawarte na stronie, dodaje je do swojej bazy danych i prosze o kolejna strone.

 

Program wywoluje z przegladarki, wszystko dziala swietnie do pewnego momentu. Skrypt przetwarza kilkadziesiat stron az w koncu przestaje dzialac (do bazy danych nic sie nie dodaje, ale przegladarka dalej "pracuje").

 

Dodam, ze algorytm wywolywania kolejnych stron jest rekursywny, a strony sa w formacie xml i do ich przetwarzania korzystam z simplexml.

 

Czy w php jest jakies ograniczenie na czas egzekucji pojedynczego skryptu? Czy problem moze lezy gdzie indziej?

 

Przepraszam za brak polskich znakow, pisze z komputera w pracy.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
Gość Clamoor

mhm ano jest

z palca use

ini_set('max_execution_time', 300); //300 seconds = 5 minutes

else ustaw w ini na stałe (odradzam)

 

Sets the value of the given configuration option. The configuration option will keep this new value during the script's execution, and will be restored at the script's ending.

 

najpierw sprawdz to bo to moze byc przyczyna, aczkolwiek moze sie okazac ze cos jeszcze ...

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dzieki, powinno zadzialac, a dodatkowo znalazlem jeszcze 'ignore_user_abort', przez co nie bede musial miec wlaczonej przegladarki :)

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
Gość Clamoor

good idea, a tak na marginesie .. po co w php :P ?

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Bo tak wygodniej. A jakie rozwiazanie bedzie myslisz szybsze i nie zajmie mnostwa czasu w napisaniu?

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
Gość Clamoor

java / c# imho nadają sie idealnie do tego typu zastosowań, tez zalezy jaka baza danych ale jdbc / ADO.NET są niezłą rzeczą (osobiscie preferuje c# ;-))

 

jezeli to ma jakos dłuzej działac to sadze ze aplikacja wolnostojąca typu pająk bedzi lepszym rozwiązaniem od php które w taki sposob jak ty odpalasz jest zalezne od apacha i jego stabilnosci oraz od samego silnika php który miewa swoje pomysły

 

pisze sie szybko, a skoro to ma byc cos a la pajak to obejdzie sie bez grafik/ okienek wiec powinno śmigać

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
Napisano (edytowane)

Pisalem juz aplikacje webowe w javie (jdbc/postgresql) wiec w sumie faktycznie niezly pomysl to moze byc. c# pewnie jeszcze szybsze bedzie, ale doswiadczenie mam jedynie z c.

 

Jak szef nie bedzie mial nic przeciwko, ze pisze to samo, tylkoze w innym jezyku to na pewno sprobuje ;)

Edytowane przez darek_dade

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
Gość Clamoor

java i c# sposobem programowania się az tak nie roznia, c# ma troche fajnych rozwiazn np settery i getery, do tego w przeciwienstwie do javy ma pełne przeładowywanie operatorów a w razie końeczności mozna użyc bloku unsafe{} i pisać na wskaźnikach ioperujac bezposrednio na pamięci ;-)

 

polecam, oby szef sie zgodził i HF pisząc to :D

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

×
×
  • Dodaj nową pozycję...