Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Kolejkowanie download'u
matid
post 2.05.2004, 19:30:59
Post #1





Grupa: Zarejestrowani
Postów: 362
Pomógł: 0
Dołączył: 18.02.2004
Skąd: Knurów

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


Czy ma ktoś pomysł jak rozwiązać kolejkowanie download'u w php? Chodzi mi o ograniczenie pobierania np. przez 10 osób jednocześnie i kolejkowanie użytkowników oczekujących na pobranie pliku. Takiej osobie będzie się wyswietlał komunikat w oknie popup: Jesteś 15/100 w kolejce, proszę czekać. I ta strona się będzie odświeżać, dopóki nie zwolni się miejsce dla wszystkich użytkowników zakolejkowanych przed nim i dopiero jak będzie mniejsce dla tej osoby to rozpocznie się transfer pliku.

Czy wogóle takie coś jest wykonalne w php bez ingerowania w ustawienia serwera www ?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
cichy
post 3.05.2004, 12:41:55
Post #2





Grupa: Przyjaciele php.pl
Postów: 197
Pomógł: 0
Dołączył: 9.09.2003
Skąd: z Marsa

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


Wpadł mi jeszcze inny pomysł (azckolwiek podobny)

Można zrobić tak:
1. user klika na ściągnij
2. sprwadzane jest ile jest plikow aktualnie sciaganych
(w bazie np tak:
plik, przewidywany czas zakonczenia
Czyli skrypt sprawdza ile jest plikow ktorych czas zakonczenia jest wiekszy niz aktualna data (najlepiej zapisywac jako time() )
jesli mniej niz np 30 (limit ilosci na raz sciaganych plikow)
to przejscie do punktu 3.
jeśli więcej do punktu 5.
3. zapisanie w bazie nazwy pliku (lub jego id, albo inny identufikator)
np jakisplik.rar, time()+45 (aktualna data +45 sekund)
4. przekierowanie kogoś do odpowiedniego pliku.

5. wstawienie uzytkownika do kolejki nazwapliku.rar, nr w kolejce(np poprzez nadanie mu najwiekszego id obecnie)
6 odswierzenie za pare sekund , sprawdzenie ile ile jest sciagnych plikow..
jesli zwolnilo sie jakies miejsce (np 29 osob teraz sciaga plik)
to wybranie z tabeli kolejka osoby z najmniejszym ID i przekierowanie jej do pliku.

Ogólnie dobrze by było ukrywać też adres ściąganego pliku (było o tym na forum już) żeby nie można było zassać pliku bez czekania w kolejce.

Dzięki temu rozwiązaniu możliwe jest ustalanie róznego czasu dla różnych plików, i tam np plik 1 mb może być ściagany w minute a 100 mb w 10 godzin.

Pozdro
Go to the top of the page
+Quote Post

Posty w temacie


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 Wersja Lo-Fi Aktualny czas: 14.08.2025 - 16:16