Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Aukcje on-line, algorytm ?
radone
post
Post #1





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 4.01.2009

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


Witam,
chciałbym napisać skrypt do aukcji on-line (podbij.pl) i prosiłbym o pomoc odnośnie zasad działania.

Wymyśliłem to tak winksmiley.jpg :

1. Skrypt w js pobiera id wszystkich aukcji ze strony i odpala ajaxa który przekazuje do php tablice z id aukcji, skrypt odpalany co sekundę
2. PHP jednym zapytaniem pobieraz odpowiednie aukcje ( zapytanie z wykorzystaniem klauzuli IN(1,2,3,n...) ) i zwraca je do js'a
3. Js aktualizuje strone


Tu mam watpliwosci co do punktu 2 bo nie wiem jak to bedzie sie zachowywalo przy duzej ilosci uzytkownikow on-line. Zastanawialem sie czy nie zrobic tego tak ze jeden skrypt po stronie serwera ( odpalany przez crona co sekunde ) bedzie pobieral wszystkie aukcje i keszowal je. I tutaj nie wiem jak bedzie z keszem na plikach, moze sie nie udac. Alternatywa jest keszowanie do pamieci RAM (memcache). Tu potrzebuje waszej pomocy.

Proszę o jakieś sugestie, pomysly winksmiley.jpg

Pozdrawiam.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
phpion
post
Post #2





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Obawiam się, iż odświeżanie co 1 sekundę doszczętnie rozwali serwer. Problemem może nie być samo zapytanie, a nawiązywanie połączenia z bazą danych. W bardzo krótkim czasie skończy Ci się pula możliwych połączeń. Jeśli dane muszą być konieczne ciągnięte z bazy danych to ustaw jakiś większy interwał czasowy np. co 7 lub 10 sekund. Powinno zdecydowanie pomóc.
Go to the top of the page
+Quote Post
radone
post
Post #3





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 4.01.2009

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


Cytat(phpion @ 4.01.2009, 19:38:55 ) *
Obawiam się, iż odświeżanie co 1 sekundę doszczętnie rozwali serwer. Problemem może nie być samo zapytanie, a nawiązywanie połączenia z bazą danych. W bardzo krótkim czasie skończy Ci się pula możliwych połączeń. Jeśli dane muszą być konieczne ciągnięte z bazy danych to ustaw jakiś większy interwał czasowy np. co 7 lub 10 sekund. Powinno zdecydowanie pomóc.


hmm większość tego typu aukcji odświeża dane co sekundę np: www.podbij.pl, www.swoopo.co.uk/

możliwe ze optymalne rozwiązanie to napisanie skryptu (odpalaego przez crona) który będzie pobierał dane co sekundę i keszował je w pamieci ram serwera, a dane dla uzytkownikow beda pobierane z pamieci (kesza)
Go to the top of the page
+Quote Post
wlamywacz
post
Post #4





Grupa: Zarejestrowani
Postów: 535
Pomógł: 27
Dołączył: 3.05.2005

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


Cron ma minimum co minutę.
Go to the top of the page
+Quote Post
radone
post
Post #5





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 4.01.2009

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


Cytat(wlamywacz @ 4.01.2009, 20:57:39 ) *
Cron ma minimum co minutę.


tak ale tutaj dowiedziałem się jak to obejść winksmiley.jpg
Temat: Odpalanie_crona_co_sekunde_
Go to the top of the page
+Quote Post
phpion
post
Post #6





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Cytat(radone @ 4.01.2009, 22:15:08 ) *
hmm większość tego typu aukcji odświeża dane co sekundę np: www.podbij.pl, www.swoopo.co.uk/

Masz tego pewność? To, że licznik odlicza co sekundę wcale nie oznacza, że wartość aukcji aktualizowana jest co sekundę. Poza tym, nawet jeśli tak jest, to serwisy te posiadają pewnie potężne zaplecze techniczne, na które (jak sądzę) nie byłoby Cię stać.


Cytat(wlamywacz @ 4.01.2009, 22:57:39 ) *
Cron ma minimum co minutę.

To akurat można obejść puszczając kod w pętlę wykonywaną 60 razy dając za każdą iteracją sleep(1).
Go to the top of the page
+Quote Post
flashdev
post
Post #7





Grupa: Zarejestrowani
Postów: 812
Pomógł: 117
Dołączył: 2.12.2008

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


@radone
Wytłumaczyłem Ci już w jednym temacie jak działają takie skrypty.
Jedna sekunda to nie jest jakiś wyznacznik, którego należy sie trzymać. To że na podbij widzisz że licznik zmienia się co sekundę to nic nie znaczy.
Dane są obliczane wtedy, kiedy są potrzebne w danej chwili.

Ps. Ograniczenia nie służa po to żeby je obchodzić. Nie znam Crona, ale widocznie ktoś to z jakiegoś powodu ograniczył.
Prawdopodobnie chodzi tu o wydajność aplikacji.


--------------------
Go to the top of the page
+Quote Post
radone
post
Post #8





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 4.01.2009

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


Cytat(flashdev @ 4.01.2009, 21:13:36 ) *
Dane są obliczane wtedy, kiedy są potrzebne w danej chwili.


zgadzam się z Tobą, tyle że tutaj są takie miejsca że dane są wyświetlane co sekundę, załóżmy że podgląd aukcji, odświeżany jest co sekundę, czyli co sekundę leci żądanie do serwera i serwer odpowiada porcją danych. Są takie momenty kiedy jakiś użytkownik podbija cenę i my nie podejmując żadnej akcji musimy się o tym dowiedzieć ... inna sytuacja kiedy zadziała bot do podbijania ceny (zazwyczaj ok 5 sek przed końcem aukcji) użytkownik ogląda tylko stronę, a w szczegółach odświeżają się informacje o historii podbić, czyli podsumowując tutaj dane są potrzebne na bieżąco.
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: 22.08.2025 - 01:53