![]() |
![]() |
![]()
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 ? |
|
|
![]() |
![]()
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 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 16:16 |