Also ich denke mit PHP ist das nicht ganz so einfach, vor allem da die Scripte meist stark laufzeitbegrenzt sind.
Ja, außerdem kann es sein, das da sehr große Dateien bei sind (200 Mb) die will ich nicht alle 10 mal kopieren. Für den Download wollte ich eigentlich apache verwenden, nicht ein weiterleitendes PHP-Script
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?
Beispielsweise einen LOCK, der dafür sorgt, dass nur ein script gleichzeitig auf eine Datei zugreift...
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...)
hätte ich, aber das ist ja auch ne sicherheitslücke ...
Also, bei der oben angesprochenen Lösung (fileshack) funktioniert das ganhze oberflächlich so: Ein User connected auf die Downloadseite. Da sieht er eine Ansicht, die ihm sagt er ist der x. in der Warteschlange. Diese Seite updated sich selber alle 2ß sec. Nach den 20 sec kommt entweder na andere Warteschlangennummer, oder ein Download beginnt.
So habe ich mir das auch vorgestellt, nur: Wie kann ich die user speichern, die in ner Warteschlange sind (ZB Global =) ) Und wie bekomme ich heraus, ob die leute aus meinem Tollen System ausgestiegen sind.
Mir Viele da folgendes ein:
Ein PHP-Script, dass jedem user erstmals ne eindeutige ID zuweist. Über diese ID wird er eindeutig in die Warteschlange eingeordnet.
Wenn er nicht regelmäßig auf der Seite reloaded (was sie ja von alleine macht) dann verfällt seine ID.
Allerdings bräuchte ich ja eine art Aufräumprozess, der die IDs nach abgelaufenem Timeout entfernt...
Mit MySQL würde das sicherlich gehen (zusammen mit nem Java-Daemon zB) Aber ich kenne mich da nicht sooo aus.