Hi!
was ich gerne realisieren würde ist eine Warteschlange für Downloads.
Ähnliches in aufwändiger Form gibt es z.B. bei http://www.fileshack.com .
Also ich denke mit PHP ist das nicht ganz so einfach, vor allem da die Scripte meist stark laufzeitbegrenzt sind. Normalerweise kann man nicht 10 Minuten lang in einer Warteschleife bleiben, also mit einem Script, sondern man muss nach einer bestimmten Zeit das Script beenden und an ein weiteres Script übergeben. Dazu kommt das Problem, dass man eigentlich nicht wirklich sagen kann wann ein download zu Ende ist, die einzieg Möglichketi die mir einfällt wäre mit fpassthru(), damit gibst Du Dateien über ein PHP-Scipt aus, problematisch an der Sache, wenn der download ein paar Minuten dauert bekomst Du Probleme mit der Laufzeit. Naja, abgesehen davon würde ich eine Wartechlange wie folgt realisieren: Sagen wir mal du willst 10 Downloads gleichzeitg erlauben, dann würde ich in ein bestimmtes verzeichnis 10 Dateien legen, z.B. dl_01.active... bis dl_10.active, und bei einem Downlaod immer eine neue Datei erstellen, und beim beenden die Datei wieder löschen. Andere Requests prüfen dann ob alle 10 Dateien belegt sind, wenn neun wird eine der nict verwendeten Dateien erstellt, wenn ja wird gewartet.
Aber da das vermutlich nicht funktionieren wird (schon aufgrund der Laufzeitbegrenzung der Scripte), würde ich evtl. eher mit einer Durchschnittsdownload-Rate rechnen, und die "download-slots" dem entsprechend verteilen, die Download-Zeit würde ich also mit der Dateigröße ermitteln. Naja, vielleicht kennt ja jemand eine besseren weg.
Noch eine Frage zu PHP (ich bevorzuge Java ... ): Kann man die Script-instanzen, die beim Aufruf der Seite gestartet werden, irgendwie synchronisieren? Gibt es globale Variablen (also instanz und script übergreifend)
Wieso sollte man das tun? Was für Daten würdest Du in die globalen Variablen schreiben? Würden die während der Laufzeit eines Scriptes verändert oder was? Aber was willst Du da synchronisieren?
und nochwas: Um die Warteschlange zu realisieren müsste man irgendwie feststellen: a) Wieviele downloads laufen
und / oder b) Wann und ob ein Download läuft.Wie geht das?
Nur wenn Du volle Gewalt über die PHP-Konfiguration hast(Scriptlaufzeiten...)
Grüße
Andreas