Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Time OUT podczas wykonywania skryptu, Dziwny problem ;O
dram
post
Post #1





Grupa: Zarejestrowani
Postów: 80
Pomógł: 0
Dołączył: 15.10.2011

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


Witam. Napisałem skrypt który ma za zadanie przeszukiwać ftp w poszukiwaniu plików (fakt faktem trwa to długo jednak) udaje się tylko wtedy
gdy w funkcji szukającej dodam cokolwiek z echo np.
  1. echo "cos";

Gdy tego nie ma TIME OUT.
  1. function search_files($files){
  2. foreach ($files as $value){
  3. if($this -> ftp_is_dir($value) && $value != "." && $value != ".."){
  4. echo "cos"; // dziala bez tego TIME OUT!(WTF!)
  5. ftp_chdir($this -> conn_id,$value);
  6. $this -> search_files(ftp_nlist($this -> conn_id,"."));
  7. ftp_cdup($this -> conn_id);
  8. }
  9. else {
  10. if($this -> check_file($value)){
  11. $this -> files['copy_files']++;
  12. $this -> files['file_size'] += ftp_size($this -> conn_id,$value);
  13. $this -> a_copy_files[] = ftp_pwd($this -> conn_id)."/".$value;
  14. }
  15. }
  16. }
  17. }


p.s w logach wywala Script timed out before returning headers
Go to the top of the page
+Quote Post
gorden
post
Post #2





Grupa: Zarejestrowani
Postów: 486
Pomógł: 101
Dołączył: 27.06.2010

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


funkcje mają za zadanie zwracać wartość, a nie echować więc się nie dziw. spróbuj zamienić echo na return a w miejscu wyświetlania funkcji dodaj echo search_files(coś)
Go to the top of the page
+Quote Post
dram
post
Post #3





Grupa: Zarejestrowani
Postów: 80
Pomógł: 0
Dołączył: 15.10.2011

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


echo($obj -> search_files(ftp_nlist($id, "."))); // wyszukanie

  1. function search_files($files){
  2. foreach ($files as $value){
  3. if($this -> ftp_is_dir($value) && $value != "." && $value != ".."){
  4. ftp_chdir($this -> conn_id,$value);
  5. $this -> search_files(ftp_nlist($this -> conn_id,"."));
  6. ftp_cdup($this -> conn_id);
  7. }
  8. else {
  9. if($this -> check_file($value)){
  10. $this -> files['copy_files']++;
  11. $this -> files['file_size'] += ftp_size($this -> conn_id,$value);
  12. $this -> a_copy_files[] = ftp_pwd($this -> conn_id)."/".$value;
  13. }
  14. }
  15. }
  16. return ($this -> a_copy_files);
  17. }


niestety time out sad.gif

echo ""; JAK DAŁEM tak w miejsce returna również nie działa echo musi coś dawać bez sensu ;(

Zmierzyłem czas w jakim to sie dzieje:
  1. Trwalo to wszystko 190.678364038


Nie jest to przecież nie wiadomo jak długo..

p.s zastanawiałem się czy może w jakiś sposób nie zrobić jakiegoś skryptu java który wyświetla "pseudo" pasek postępu. Wtedy być może nie wywali time outa?
Go to the top of the page
+Quote Post
wNogachSpisz
post
Post #4





Grupa: Zarejestrowani
Postów: 1 233
Pomógł: 87
Dołączył: 6.03.2009

Ostrzeżenie: (40%)
XX---


Widocznie serwer ubija procesy które zbyt długo nic nie wywalają na wyjście..
Go to the top of the page
+Quote Post
dram
post
Post #5





Grupa: Zarejestrowani
Postów: 80
Pomógł: 0
Dołączył: 15.10.2011

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


No dobrze ale jest chyba jakiś sposób na poradzenie sobie z tym? Np. echo działa ale musi printować coś na ekran.. (niestety)
Go to the top of the page
+Quote Post
wNogachSpisz
post
Post #6





Grupa: Zarejestrowani
Postów: 1 233
Pomógł: 87
Dołączył: 6.03.2009

Ostrzeżenie: (40%)
XX---


Cytat(dram @ 4.01.2012, 15:07:25 ) *
No dobrze ale jest chyba jakiś sposób na poradzenie sobie z tym?

Inaczej skonfigurować serwer.
Go to the top of the page
+Quote Post
dram
post
Post #7





Grupa: Zarejestrowani
Postów: 80
Pomógł: 0
Dołączył: 15.10.2011

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


Jakieś konkrety z łaski swej?
Go to the top of the page
+Quote Post
erix
post
Post #8





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




O, to widzę, że nie ma co się o płace w IT martwić, skoro nikt nie nawet nie raczy zajrzeć do dokumentacji: http://pl.php.net/manual/en/function.ftp-connect.php

Więcej nie podpowiem, to już byłaby kpina z mojej strony.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
dram
post
Post #9





Grupa: Zarejestrowani
Postów: 80
Pomógł: 0
Dołączył: 15.10.2011

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


ustawiałem już to na 900 jednak brak poprawy jakieś pomysły jeszcze?

Wiem że jest możliwe zrobienie coś takiego bo już gdzieś to widziałem ale w jaki sposób?

Myslałem coś w stylu uruchamiania skryptu skryptem?

Np. ktoś naciska guzik "uruchom" na stronie X, wtedy uruchamia sie stona Y w tle która synchronizuje dane ftp wtedy być może time outa by nie było? mhm

Ten post edytował dram 4.01.2012, 21:40:04
Go to the top of the page
+Quote Post
erix
post
Post #10





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




A jakie pingi masz między tymi serwerami?


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
dram
post
Post #11





Grupa: Zarejestrowani
Postów: 80
Pomógł: 0
Dołączył: 15.10.2011

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


30-60 skrypt wykonuje się mniej więcej tyle co normalnie tj. tyle co by szukał tych plików tyle ze zamiast wyników szukania wyskakuje timeout oczywiście gdy daje echo tego problemu NIE ma...
sciana.gif sciana.gif
Go to the top of the page
+Quote Post
erix
post
Post #12





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Bo echo nie wykorzystuje połączenia z serwerem, które może być spowolnione z różnych czynników...


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
dram
post
Post #13





Grupa: Zarejestrowani
Postów: 80
Pomógł: 0
Dołączył: 15.10.2011

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


To niech mi ktoś chole** poda rozwiązanie tego problemu bo mam go dosyć. próbowałem chyba już wszystkiego. Moze ktoś zna coś innego wzamian za echo?
Go to the top of the page
+Quote Post
patryk9200
post
Post #14





Grupa: Zarejestrowani
Postów: 319
Pomógł: 4
Dołączył: 7.02.2009
Skąd: pless

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


Prawdopodobnie nie chodzi tu o zbyt długi czas wykonywania skryptu a raczej o zbyt długi czas nie zwracania żadnej wartości do przeglądarki.
Sam mam skrypt który wykonuje się ok. 30 minut przeprowadzając na kilku tysiącach obiektów kilka operacji w tym synchronizację danych z innymi serwerami po WebAPI.
Właśnie w tym wypadku miałem kiedyś problem, że taki komunikat wyskakiwał. Nie pamiętam już nazwy zmiennej której wartość trzeba zmienić w php.ini, ale jest taka możliwość.
e.w. tak jak ja robię obecnie (skrypt wykonuje się w cronie) przy każdej operacji zwracam informację o powodzeniu/niepowodzeniu operacji oraz e.w. szczegóły błędu.
Dzięki temu błąd nie wyskakuje a ja mam logi na podstawie których mogę naprawiać ew. błędy.

Sprawdź to-> http://php.net/manual/pl/features.connection-handling.php
Go to the top of the page
+Quote Post
wNogachSpisz
post
Post #15





Grupa: Zarejestrowani
Postów: 1 233
Pomógł: 87
Dołączył: 6.03.2009

Ostrzeżenie: (40%)
XX---


Cytat(dram @ 3.01.2012, 17:16:31 ) *
p.s w logach wywala Script timed out before returning headers

A próbowałeś wykonać złożoną i niebezpieczną operację wpisana tego zdania w google?
Go to the top of the page
+Quote Post
dram
post
Post #16





Grupa: Zarejestrowani
Postów: 80
Pomógł: 0
Dołączył: 15.10.2011

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


Tak próbowałem bo to raz...

  1. ini_set('max_execution_time','99999');
  2. ini_set('default_socket_timeout','99999');
  3. error_reporting( E_ALL );
  4. include("inc/kop_class.php");

i nie pomaga:(
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 Aktualny czas: 19.08.2025 - 19:13