Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL] - kolejkowanie - prośba o sprawdzenie poprawności pętli.
Forum PHP.pl > Forum > PHP
Patras3
Witam wszystkich serdecznie na forum smile.gif
Jestem nowy i to mój pierwszy post, ponieważ wcześniej sama lektura wystarczała mi do rozwiązywania swoich problemów.
Mam stronę, którą chciałbym zabezpieczyć przed osiągnięciem maksymalnej liczby połączeń do mysql.
Ogólnie połączenia są zamykane - jednak jeżeli osiągnie się dużą odwiedzalność może się okazać, że to nie wystarczy...
Napisałem więc pętle w PHP, ktora includuje w plikach w ktorych łączę się z bazą (na samym początku - dlatego sesja i ob ):
  1. <?php
  2. while( $connect == FALSE )
  3. {
  4. $connect=mysql_connect("********","******","******");
  5. mysql_select_db("******");
  6. If ($connect == FALSE ) {
  7. usleep(20000);
  8. mysql_connect("******","******","*****");
  9. mysql_select_db("*****");}
  10. }

Chodziło mi o to, by w razie braku możliwości połączenia z bazą skrypt automatycznie łączył się ponownie - czy zrobiłem to poprawnie?
Nie stety nie wiem nawet jak to sprawdzić ;/ a myślę, że Wasze doświadczenie mi pomoże:)
Z góry dzięki za pomoc.
Ps: Nie wiedziałem tak naprawdę w jakim wątku to umieścić... czy przypadkiem nie Przedszkole - jeżeli tak to proszę administrację o przeniesienie. Ogólnie nie uważam, że "raczkuje" ponieważ miałem ogromną ilość problemów, które albo metodą prób i błędów rozwiązałem albo googlowaniem, bądź właśnie dzięki temu forum. Raczej zwykłym zjadaczem chleba bym się nazwał, który coś tam wie smile.gif
erix
Cytat
Ogólnie połączenia są zamykane - jednak jeżeli osiągnie się dużą odwiedzalność może się okazać, że to nie wystarczy...

Jak osiągnie, to wtedy będziesz się martwić.

Skup się na nauce.
tehaha
Jeżeli chcesz to sprawdzić to musiałbyś sam na sobie przeprowadzić atak DDOS. Ale wydaje mi się, że to nie jest temat dla osoby, która dopiero zaczyna przygodę z php. Jeżeli skoncentrujesz się na pisaniu wdajnych zapytań mysql i optymalnym projektowaniu bazy danych, to pomijąjąc przypadki ataków z taką sytuacją się raczej nie spotkasz. Najlepiej opanuj podstawy i w dalszym kształceniu miej na uwadze optymalizację mysql i kwestie zabezpieczeń przed atakami i będzie dobrze.

Co do Twojego skryptu to sleep na 20s nie ma sensu bo po chwili wywali błąd z tytułu przekroczenia maksymalnego czasu wykonywania skryptu, więc jeżeli już to lepiej podjąć max 3 próby w odstępach 500ms.

@DOWN faktycznie masz rację, nie dopatrzałem i potraktowałem to jako sleep()
Patras3
  1. usleep(20000);
- to nie jest sleep lecz usleep smile.gif
czyli według manuala:
Cytat
Halt time in micro seconds. A micro second is one millionth of a second.

Więc chyba jest dobrze @tehaha ? smile.gif
greycoffey
Cytat(Patras3 @ 11.08.2012, 17:25:21 ) *
  1. usleep(20000);
- to nie jest sleep lecz usleep smile.gif
czyli według manuala:

Więc chyba jest dobrze @tehaha ? smile.gif

Tak, bo 20s != 20 000ms.
Patras3
Dzięki za odpowiedzi smile.gif
Skoro nikt się tych pętli nie czepia to chyba są okej wink.gif
tehaha
Cytat
Skoro nikt się tych pętli nie czepia to chyba są okej
Nie jest ok, bo jeżeli skrypt nie będzie mógł się połączyć z bazą, a będzie bez konća próbował, to po chwili pojawi się biały ekran z błędem przekroczenia maksymalnego działania skryptu. Jeżeli już się upierasz, żeby podejmować więcej niż jedną próbę to ogranicz to ilościowo i po nieudanych kilku próboch wyświetl jakąś stronę z komunikatem.
Patras3
Cytat(tehaha @ 11.08.2012, 19:05:20 ) *
Nie jest ok, bo jeżeli skrypt nie będzie mógł się połączyć z bazą, a będzie bez konća próbował, to po chwili pojawi się biały ekran z błędem przekroczenia maksymalnego działania skryptu. Jeżeli już się upierasz, żeby podejmować więcej niż jedną próbę to ogranicz to ilościowo i po nieudanych kilku próboch wyświetl jakąś stronę z komunikatem.

myślę że 3 próby do 5 maksymalnie smile.gif
da radę napisać smile.gif
Dzięki za radę 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.