MichaelR: Kapazität ...

Beitrag lesen

Hallo,

Also die Zahlen die du nennst hören sich nicht nach viel an. Leider gibst du keinen Zeitrahmen an in dem das statt findet. Aber selbst wenn diese 5200 Anfragen innerhalb von einer Stunde aufschlagen sollte das ( selbst mit nicht optimierten SQL-Statements) kein problem sein. Es sei denn du läst dir irrsinnig grosse Antwort listen zurückgeben und suchst in denen dann mit php mitteln.

In der Summe sind die Zahlen nicht viel, aber man muss - und das hab ich leider vergessen beim 1. Posting - sehen, dass der Großteil davon innerhalb weniger Minuten stattfindet. Das ganze wird durch das first-come-first-serve Prinzip natürlich verstärkt. Es sind ca. 2.500 Studenten eingeschrieben und die wollen in relativ kurzer Zeit eben eine begrenzte Anzahl von Plätzen ergattern.

Zu den SQL-Statements noch ein Wort: ich hab sowieso da schon geschaut, nur das zurück zugeben, was in der weiteren Verarbeitung benötigt wird.

Das solltest du unbedingt "asynchron" machen:

-via PHP/Perl Formular die Daten abfragen.
-In lokale SQL stopfen.
-Auf eine selbst refreshende Seite ( z.B. 1min ) schicken auf der "Bitte Warten Sie" steht die nur in die lokale DB schaut ob der eintrag als "bestätigt" makiert wurde.

Im Prinzip funktioniert es bereits jetzt so:

1. Liste mit allen Kursen, zu denen sich Student X anmelden darf
2. Dieser wählt einen Kurs aus
3. eine Seite weiter muss er bestätigen (zwingend erfolgerlich)
4. Daten werden in DB übernommen
5. Liste mit allen Kursen wird geladen, der gewählte Kurs wird entsprechend markiert als "angemeldet"

Dann machst du dir ein vom Webserver unabhängiges script ( z.B. via cronjob ) das in die lokale DB schaut und _seriell_ die Anfragen abarbeitet. Und dann den eintrag in der DB als "bestätigt" oder "abgelhnt" makiert.

Das Problem hierbei ist, dass der Studenten sofort wissen soll, ober er den Platz hat oder nicht. Das heißt ich kann leider nicht erst alle Anfragen sammeln und später auswerten, wie das bei einem Präferenzsystem z. B. der Fall wäre (dort gibt man seine Präferenz für bestimmte Kurse an, und wenn die Frist vorbei ist werden die Kurse anhand der Präferenzen verteilt).

Als "Bonus" könnte man sogar ne art "Zeitanzeige/Fortschritt" einbauen oder im schlimmsten fall sagen das er die Antwort dann irgendwann per Email bekommt.

Das wäre klasse, aber wenn aufgrund der Auslastung nur noch eine weiße Seite angezeigt wird, bzw. überhaupt keine Reaktion vom Server mehr kommt hilft das auch nicht weiter.

Grüße,
Michael