Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Problem z CURL i Gateway Timeout 504
Forum PHP.pl > Forum > Przedszkole
elempl
Jest to mój pierwszy post na tym forum więc Witam Wszystkich smile.gif

Mam problem ze skryptem php który pobiera rekordy zapisane w bazie MySql a następnie wrzuca je do serwisu przez CURL.
Serwer wytrzymuje przy 2-5 rekordach ale kiedy wrzucam już 10 lub 20 niestety otrzymuję 504 Gateway Timeout i tyle ;( (serwer na którym wywołuję poniższy skrypt)
Wyczytałem że najlepiej przerobić to na multicurl ale niestety raczkuję dopiero w tematyce PHP i nie jestem w stanie tego lepiej ogarnąć.

Liczę na Waszą pomoc i z góry dziękuję.
Wszelkie inne pomysły na rozwiązanie tego problemu mile widziane smile.gif

  1.  
  2.  
  3. $wynik = mysql_query("
  4. SELECT
  5. *
  6. FROM
  7. wiadomosci
  8. ");
  9.  
  10. if($wynik){
  11. while($row = mysql_fetch_array($wynik, MYSQL_ASSOC)){
  12. $msg['wiadomosc'] = $row['wiadomosc'];
  13. $numerid = $row['numerstrony'];
  14. try {
  15.  
  16. $url=curl_init();
  17.  
  18. curl_setopt($url, CURLOPT_URL, "http://ADRESSTRONY/".$numerid."/");
  19. curl_setopt($url, CURLOPT_POST, true);
  20. curl_setopt($url, CURLOPT_POSTFIELDS, $msg);
  21. curl_setopt($url, CURLOPT_RETURNTRANSFER, true);
  22.  
  23. curl_exec($url);
  24. curl_close($url);
  25.  
  26.  
  27. }
  28.  
  29. }
  30.  
szalek01
A może zamiast łączyć się z serwerem w pętli while, zbuduj sobie np jsona lub coś podobnego. I przęśli to raz.
elempl
Cytat(szalek01 @ 29.09.2012, 11:50:35 ) *
A może zamiast łączyć się z serwerem w pętli while, zbuduj sobie np jsona lub coś podobnego. I przęśli to raz.


dzięki za odpowiedź niestety moja wiedza programistyczna nie jest aż tak bogata żebym potrafił to zrobić sad.gif
Czy to rozwiązanie o którym mówisz jest w stanie pobrać wszystkie rekordy i podstawić odpowiednie zmienne i wysłać na raz?

p.s.
Jeśli ktoś jeszcze ma jakieś pomysły będę wdzięczny smile.gif
szalek01
Masz zmienne $numerid i $msg['wiadomosc'] w pętli while zamiast od razu je wysyłać połącz je w jedna wiadomość np w formcie json
{"1":"jakas wiadomość","2":"kolejna wiadomość"} o tak całość jak już będziesz miał zbudowanego takiego stringa wmyśli go.
Oczywiście nie weim jak długie masz te wiadomości i ile ich jest ale zawsze możesz zamknąć to w funkcie i wywoływać z LIMIT'em.
Tam gdzie odbierasz dane sparsujesz sobie jsona i po sprawie smile.gif
elempl
Cytat(szalek01 @ 29.09.2012, 12:58:32 ) *
Masz zmienne $numerid i $msg['wiadomosc'] w pętli while zamiast od razu je wysyłać połącz je w jedna wiadomość np w formcie json
{"1":"jakas wiadomość","2":"kolejna wiadomość"} o tak całość jak już będziesz miał zbudowanego takiego stringa wmyśli go.
Oczywiście nie weim jak długie masz te wiadomości i ile ich jest ale zawsze możesz zamknąć to w funkcie i wywoływać z LIMIT'em.
Tam gdzie odbierasz dane sparsujesz sobie jsona i po sprawie smile.gif


tylko te zmienne co rekord są inne dlatego za każdym razem są pobierane w pętli - czy może coś źle interpretuję ? smile.gif
szalek01
hmmmm ta to już z zmiennymi jest że się zmieniają biggrin.gif
podaj przykład tych widomości
elempl
Cytat(szalek01 @ 29.09.2012, 13:50:01 ) *
hmmmm ta to już z zmiennymi jest że się zmieniają biggrin.gif
podaj przykład tych widomości


To takie krótkie wiadomości tekstowe smile.gif a i liczby też mogą wystąpić smile.gif
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.