Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Skrypt PHP uruchamiający samego siebie
rudolf35
post 31.12.2013, 14:05:56
Post #1





Grupa: Zarejestrowani
Postów: 83
Pomógł: 0
Dołączył: 17.10.2007

Ostrzeżenie: (0%)
-----


Witam,

Szukam rozwiązania problemu związanego z limitem wykonania się skryptu na moim hostingu. Napisałem skrypt, który aktualizuje stany i ceny w moim sklepie internetowym, według danych z pliku xml hurtowni i jest uruchamiany przez CRONA. Problem polega na tym, że hosting na którym postawiony jest sklep, ma limit wykonania się skryptu, ustawiony na 1 minutę, a produktów jest kilkanaście tysięcy. Próbuję wymyślić obejście tego limitu i wpadłem na pomysł, aby skrypt aktualizował towary porcjami, czyli aktualizuje określoną porcję towarów i przed zakończeniem działania uruchamia siebie samego z odpowiednimi parametrami i aktualizuje kolejną porcję. Chciałbym tylko prosić o podpowiedź jakiej funkcji użyć do uruchomienia tego skryptu drugi raz. Musi ona działać w ten sposób, że podczas uruchomienia tej funkcji, skrypt nie będzie już czekał na zakończenie jej działania, tylko zakończy swoją pracę.

Mam nadzieję, że wytłumaczyłem mój problem dostatecznie dobrze.



Go to the top of the page
+Quote Post
sowiq
post 31.12.2013, 14:26:23
Post #2





Grupa: Zarejestrowani
Postów: 1 890
Pomógł: 339
Dołączył: 14.12.2006
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Jeśli z poziomu skryptu PHP (A) uruchomisz inny skrypt (B), to tak czy siak (A) będzie czekał na zakończenie pracy (B).

Podstawowe pytanie - zadanie uruchamiasz z wiersza poleceń, czy po http (np. za pomocą wget)? Bo limit czasu wykonywania tyczy się tylko skryptów uruchamianych po http, chyba że admin Twojego serwera wymyślił jakieś udziwnienie...

Ten post edytował sowiq 31.12.2013, 14:29:03
Go to the top of the page
+Quote Post
rudolf35
post 31.12.2013, 14:47:05
Post #3





Grupa: Zarejestrowani
Postów: 83
Pomógł: 0
Dołączył: 17.10.2007

Ostrzeżenie: (0%)
-----


Skrypt jest uruchamiany po http, bo jest częścią aplikacji napisanej w Zendzie, więc najłatwiej mi było go uruchomić w ten sposób. jeśli faktycznie limit tyczy się z reguły tylko skryptów uruchamianych po http, to jest już dla mnie jakiś trop. W takim razie będę eksperymentował nad uruchomieniem skryptu z wiersza poleceń.
Go to the top of the page
+Quote Post
zegarek84
post 31.12.2013, 14:52:12
Post #4





Grupa: Zarejestrowani
Postów: 1 332
Pomógł: 294
Dołączył: 12.10.2008
Skąd: Olkusz

Ostrzeżenie: (0%)
-----


Cytat(sowiq @ 31.12.2013, 14:26:23 ) *
Jeśli z poziomu skryptu PHP (A) uruchomisz inny skrypt (B), to tak czy siak (A) będzie czekał na zakończenie pracy (B).

to zależy gdyż nie musi ;]

oprócz tych tricków są też różne zaawansowane cronweby gdzie zadania możesz uruchamiać częściej niż co 5 min bazujące na wywołaniu http gdyż są na innych serwerach - poszukaj w google

[php]Kilka procesów jednocześnie
Uruchamianie skryptu php "w tle"
Przekazywanie obiektu COM, Przekazywanie obiektu COM między wywołaniami strony
[php] Skrypt działający non stop, gentoo
[wolontariat]wykonywanie 2 akcji po kliknięciu na button
uruchamianie pliku php co 30s bez właczonego kompa - na serwie
PHP uruchomienie procedury składowanej bez czekania na resultat

Ten post edytował zegarek84 31.12.2013, 14:54:24


--------------------
Jeśli twoja ręka rusza do przodu powstrzymaj swój gniew; gdy wyprzedza cię twój gniew - wycofaj rękę.

Go to the top of the page
+Quote Post
sowiq
post 31.12.2013, 15:18:36
Post #5





Grupa: Zarejestrowani
Postów: 1 890
Pomógł: 339
Dołączył: 14.12.2006
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Skoro Zend, to nie ma żadnego problemu żeby odpalać Twoje zadanie z poziomu konsoli.
https://www.google.pl/search?q=zend+run+action+from+console ==>> http://stackoverflow.com/questions/2325338...om-command-line

Cytat(rudolf35 @ 31.12.2013, 14:47:05 ) *
jeśli faktycznie limit tyczy się z reguły tylko skryptów uruchamianych po http, to jest już dla mnie jakiś trop

Trop jest bardzo prosty - Twój skrypt nie wyrabia smile.gif Bierz mniejsze porcje danych, ale uruchamiaj (w miarę możliwości) swoje zadanie w mniejszych odstępach czasu.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 13.08.2025 - 22:48