Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Aukcje on-line, algorytm ?
Forum PHP.pl > Forum > PHP
radone
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.
phpion
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.
radone
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)
wlamywacz
Cron ma minimum co minutę.
radone
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_
phpion
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).
flashdev
@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.
radone
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.
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.