Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MYSQL] - kolejkowanie - prośba o sprawdzenie poprawności pętli.
Patras3
post
Post #1





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 11.08.2012
Skąd: Ciechomin/Łuków/Siedlce

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


Witam wszystkich serdecznie na forum (IMG:style_emoticons/default/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 (IMG:style_emoticons/default/smile.gif)

Ten post edytował Patras3 11.08.2012, 16:06:04
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
erix
post
Post #2





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




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.
Go to the top of the page
+Quote Post
tehaha
post
Post #3





Grupa: Zarejestrowani
Postów: 1 748
Pomógł: 388
Dołączył: 21.08.2009
Skąd: Gdynia

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


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()

Ten post edytował tehaha 11.08.2012, 17:00:33
Go to the top of the page
+Quote Post
Patras3
post
Post #4





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 11.08.2012
Skąd: Ciechomin/Łuków/Siedlce

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


  1. usleep(20000);
- to nie jest sleep lecz usleep (IMG:style_emoticons/default/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 ? (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
greycoffey
post
Post #5





Grupa: Zarejestrowani
Postów: 320
Pomógł: 29
Dołączył: 3.04.2010

Ostrzeżenie: (20%)
X----


Cytat(Patras3 @ 11.08.2012, 17:25:21 ) *
  1. usleep(20000);
- to nie jest sleep lecz usleep (IMG:style_emoticons/default/smile.gif)
czyli według manuala:

Więc chyba jest dobrze @tehaha ? (IMG:style_emoticons/default/smile.gif)

Tak, bo 20s != 20 000ms.
Go to the top of the page
+Quote Post
Patras3
post
Post #6





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 11.08.2012
Skąd: Ciechomin/Łuków/Siedlce

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


Dzięki za odpowiedzi (IMG:style_emoticons/default/smile.gif)
Skoro nikt się tych pętli nie czepia to chyba są okej (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post
tehaha
post
Post #7





Grupa: Zarejestrowani
Postów: 1 748
Pomógł: 388
Dołączył: 21.08.2009
Skąd: Gdynia

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


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.
Go to the top of the page
+Quote Post
Patras3
post
Post #8





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 11.08.2012
Skąd: Ciechomin/Łuków/Siedlce

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


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 (IMG:style_emoticons/default/smile.gif)
da radę napisać (IMG:style_emoticons/default/smile.gif)
Dzięki za radę (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 17.09.2025 - 11:20