Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.

#1 06. November 2018 11:05

antibart
Server-Pate
Registriert: 14. Dezember 2010
Beiträge: 815

Zur Server-Entlastung Bestellungen "zwischenlagern"

Hallo,

ich bin mir sehr unsicher, ob dieses Sub passt, da ich noch gar nicht weiß, ob das überhaupt eine Modulfrage wird.

Ich habe bereits einige Kurswahlsysteme mit einer Mischung aus Formbuilder und LISE realisiert. Für die Kurse kann eine max. Teilnehmerzahl eingetragen werden, sobald die auf Null steht, verschwindet der Kurs. Die Buchungen gehen per Mail an den Kursleiter und in eine Tabelle.

Nun gibt es aber einen Wunsch, zu dem ich momentan noch keine Idee habe.

Ich gebe einfach mal etwa wieder, was ich weiß:

Ein Haufen Leute können sich für den Zeitraum von etwa einer Woche zu etwa 20 Kursen anmelden. Danach verschwinden die Kurse wieder. Es gilt das Prinzip: Wer zuerst kommt, mahlt zuerst.  Die Kurse sind heiß begehrt.

Was dazu führt, dass sich alle pünktlich auf die Minute zum Startschuss auf das Kurswahlsystem stürzen, um sich ihre Kurse zu sichern. Das wiederum führt zu Serverüberlastungen.

Daher besteht der Wunsch, die Buchungen in einer Art Pufferzone zwischenzulagern und nach drei Tagen automatisch per Zufallsprinzip zu vergeben. Damit entfällt das "Wer zuerst kommt"-Prinzip und die Sever werden wieder entlastet.

Zudem besteht der Wunsch, dass jeder Interessent sich nur für zwei veschiedene Kurse anmelden kann.

Das ganze ohne FE User.

Im noch aktiven System, dass auf TYPO3 basiert, soll das angeblich so funktionieren. Aber das Ding ist halt uralt und soll nun ersetzt werden.

Ich habe die Befürchtung, dass ich da mit meinem LISE/FB-Hybrid nicht weiterkomme. Aber gibt es überhaupt eine Möglichkeit, so etwas mit CMSMS-MItteln umzusetzen?

Über Anregungen oder gar konkrete Hinweise würde ich mich freuen.

Beitrag geändert von antibart (06. November 2018 12:34)

Offline

#2 06. November 2018 12:34

antibart
Server-Pate
Registriert: 14. Dezember 2010
Beiträge: 815

Re: Zur Server-Entlastung Bestellungen "zwischenlagern"

Eine erste Idee hätte ich bereits.

Da die Anmeldungen ohnehin in einer Datei csv-gespeichert werden, könnte man schon mal auf den Mailversand verzichten. DAs sollte bereits zu Entlastung führen. Dann "nur" noch das mit der automatischen Zufallsverlosung und der Anmeldebeschränkung auf 2.

Beitrag geändert von antibart (06. November 2018 13:28)

Offline

#3 06. November 2018 15:12

NaN
Moderator
Ort: Halle (Saale)
Registriert: 09. November 2010
Beiträge: 4.188

Re: Zur Server-Entlastung Bestellungen "zwischenlagern"

Das ganze ohne FE User.

Wie willst Du dann eine Beschränkung der Kurse vornhemen?
Du brauchst zumindest irgendeine Kennung (e-mail addresse ?) um zu wissen, wer sich wofür bereits eingetragen hat. Und wenn jemand zwei E-Mail Addressen hat, könnte er sich theoretisch für 4 Kurse anmelden...

Daher besteht der Wunsch, die Buchungen in einer Art Pufferzone zwischenzulagern und nach drei Tagen automatisch per Zufallsprinzip zu vergeben. Damit entfällt das "Wer zuerst kommt"-Prinzip und die Sever werden wieder entlastet.

Ich weiß nicht, ob ich das richtig verstehe.
Heißt das, es gibt keine "Instant-Buchung"?
D.h. man trägt sich für einen Kurs ein und erhält die Meldung "Ihre Anfrage wird bearbeitet"?
Und irgendwann erhält man eine Bestätigung oder eine Absage?
Frage 1: Wenn man sich für 2 Kurse anmelden kann, könnte es dann passieren, dass man für Kurs 2 eine Bestätigung, aber für Kurs 1 eine Absage erhält? Das würde mich als Kunde sehr frustrieren.

Frage 2: Ich weiß nicht, inwiefern, das den Server wirklich entlasten soll. Kurzeitig vielleicht. Aber auch nur in der Theorie. Denn wenn sich trotzdem alle aufeinmal eintragen wollen, wird doch auch diese Pufferzone überlastet werden, oder? Ist doch derselbe Server/das selbe System dahinter. Oder hofft man einfach nur, dass es sich rumspricht, dass nicht mehr das "Wer zuerst kommt"-Prinzip gilt und sich somit der Ansturm verteilt? Selbst wenn das klappen sollte, verlagert man doch damit nur das Problem. D.h. man sollte erstmal herausfinden, was genau den Server überlastet. Kann er die Zahl Anfragen nicht bewältigen, bleibt das Problem bestehen. Wird ein anderes Ressourcen-Limit (RAM, CPU, Anzahl der DB-Verbindungen etc.) erreicht, kann man den Server mit einem einfacherem Script tatsächlich entlasten.

Meiner Meinung nach könnte das nur klappen, wenn man das auf zwei "Systeme" (oder noch besser auf zwei Server) aufteilt. System 1 hat die Aufgabe alle Anmeldungen einfach nur entgegenzunehmen und irgendwo zu parken. Z.B. in einer CSV-Datei. Das kann aber bei massenhaftem Ansturm auch problematisch werden, denn Lese-/Schreibzugriffe kosten Zeit. Wenn 10.000 Leute gleichzeitig auf dieselbe CSV-Datei zugreifen, muss der letzte warten, bis alle 9.999 vor ihm durch sind. Das wird zwar nicht gleich in einem Time-Out enden, aber der Server muss ja die Anzahl der Verbindungen in der Zeit halten. D.h. System 1 muss vor allem schnell arbeiten. Sonst hat man nicht viel gekonnt. Ich würde das eher mit einer eigenständigen PHP-Datei lösen. Völlig unabhängig von irgendeinem CMS.

Und irgendwann - nachts z.B. - wenn der Ansturm nicht so groß ist, können dann z.B. via Cronjob diese Anmeldungen abgearbeitet und an System 2 übergeben werden. Auch hier muss noch kein CMS zum Einsatz kommen. Ein eigenes PHP-Script reicht. D.h. die Einträge in der CSV-Datei werden ausgelost und nur die ausgelosten Anfragen werden an das jeweilige Buchungssystem übergeben. (oder jemand importiert die CSV-Datei nach Anmeldeschluss "von Hand" - dabei wird dann ausgelost)
Und dann erst werden alle Teilnehmer informiert. Erst die Abgelehnten, dann die Angenommenen (entlastet nochmal, wenn man das in zwei Jobs aufteilt).

Die Antwort auf die Frage, ob das mit CMSms machbar wäre, hängt davon ab, welche Schnittstellen denn Deine Module LISE/FB bieten, um den Import überhaupt automatisieren zu können. Wie gesagt, Anmeldung, Auslosung und Übergabe an das Buchungssytem kann man ja völlig unabhängig von irgendeinem CMS vornehmen. Aber solange nicht klar ist, wie es dann weitergeht, bringt die Überlegung nicht viel.

Offline

#4 06. November 2018 15:31

antibart
Server-Pate
Registriert: 14. Dezember 2010
Beiträge: 815

Re: Zur Server-Entlastung Bestellungen "zwischenlagern"

Danke für die Antwort schonmal.

Es sind keine Kunden, es sind Studenten, die sich dort am Semesteranfang für ein Wahlangebot anmelden können. Es ist nun mal so, dass sowohl die Kurse als auch die Teilnehmerzahl begrenzt sind. Frustrierend vielleicht, aber nicht zu ändern.

Zwei Mailadressen: Sie sind meines Wissens genötigt, ihre einmalige Uni-Adresse zu nutzen.

Für den Rest brauch ich ein paar Tage. Ich versuche mal Einblick in deren Umgenung zu erhalten. Glücklicherweise liegt das Ganze nicht auf einem Uni-Server, sondern auf einem ganz normalen externen Provider. Ich kann mir momentan nicht vorstellen, dass die dort etwas besonders Kompliziertes machen.

Beitrag geändert von antibart (06. November 2018 15:44)

Offline

#5 07. November 2018 11:05

antibart
Server-Pate
Registriert: 14. Dezember 2010
Beiträge: 815

Re: Zur Server-Entlastung Bestellungen "zwischenlagern"

NaN schrieb:

Heißt das, es gibt keine "Instant-Buchung"?
D.h. man trägt sich für einen Kurs ein und erhält die Meldung "Ihre Anfrage wird bearbeitet"?
Und irgendwann erhält man eine Bestätigung oder eine Absage?

Keine Instant-Buchung. Es gibt mW auch keinen Mailverkehr - wie ich mir ja auch schon dachte. Nachdem die Auslosung vorüber sind, werden die Matrilkelnummern auf der Website veröffentlicht. Persönliche Benachrichtigungen scheint es also nicht zu geben.

NaN schrieb:

Frage 2: Ich weiß nicht, inwiefern, das den Server wirklich entlasten soll.

Die Entlastung entsteht dadurch, dass das Prinzip "Wer zuerst kommt.." entfällt. Anmelder sind nicht mehr gezungen, sich alle gleichzeitig am zB Montag, den 16.02, um 06:30 auf die Kurse zu stürzen, um die besten zu ergattern. Kein Stundent steht um 5:30 auf, wenn er nicht unbedingt muss. Sie haben drei Tage Zeit und nicht der Anmeldetermin entscheidet über die Zusage, sondern der Zufall.   

NaN schrieb:

Oder hofft man einfach nur, dass es sich rumspricht, dass nicht mehr das "Wer zuerst kommt"-Prinzip gilt und sich somit der Ansturm verteilt

Nein. Das spricht sich nicht rum. Zum einen wird es ihnen gesagt, zum anderen ist es ja (angeblilch!) schon seit Jahren so. Wie gesagt: Die haben ja bereits ein System, was so funktioniert. Nur ist das schon sehr alt, wenig ansprechend, nicht responsive. Und da ich für eine andere Abteilung des Studienganges bereits ein Wahlsystem erstellt habe, haben sie mich angesprochen.

NaN schrieb:

Wenn 10.000 Leute gleichzeitig auf dieselbe CSV-Datei zugreifen, muss der letzte warten,


So viele werden es garantiert nicht sein. Es ist ein bestimmter Teilbereich eines Studienganges. Und wie gesagt: Dass alle gleichzeitig drauf zugreifen, soll ja durch die 3-Tage-Frist vermieden werden. Was in der Praxis anbeglich auch klappt.

Ich habe mal angefragt, ob ich Zugang zum alten System bekommen kann. Ich korrespondiere meist nur mit den Profs, nicht mit der IT oder dem Admin. Und nur selten wissen die Profs, was da tatsächlich passiert. Denn mit der tatsächlichen Bearbeitung haben die natürlich rein gar nichts zu tun. Ich werde mich mal an die frühere Editorin wenden.

Beitrag geändert von antibart (07. November 2018 11:06)

Offline

#6 08. November 2018 20:22

NaN
Moderator
Ort: Halle (Saale)
Registriert: 09. November 2010
Beiträge: 4.188

Re: Zur Server-Entlastung Bestellungen "zwischenlagern"

Die Idee scheint kniffliger zu sein, als ich dachte. Ich sehe da jetzt noch folgendes Problem: Wenn man sich nur für zwei Kurse anmelden darf, muss das System beim Anmelden allerdings prüfen, ob sich derjenige nicht schon für zwei andere Kurse angemeldet hat. D.h. es müssten trotzdem alle bisherigen Anmeldungen kursübergreifend überprüft werden. Denn wenn man stumpf ohne Feedback einfach alle Anmeldungen erstmal entgegennimmt und erst später filtert, läuft man Gefahr, dass sich die Studenten als Backup-Lösung einfach wahllos für alles anmelden. Irgendwelche zwei Kurse werden sie ja dann schon bekommen. Dann kann man die Anmeldung aber auch gleich sein lassen und braucht stattdessen nur aus der Liste aller für den Studiengang immatrikulierten Stundenten zu würfeln.

D.h. die Anmeldung zu den Kursen darf nicht parallel laufen. Erst wenn der eine Kurs durch ist, darf die Anmeldung zum zweiten Kurs erfolgen. Denn erst dann weiß auch das System, wer auch tatsächlich in welchem Kurs angenommen wurde und kann Mehrfachanmeldungen sinnvoll unterbinden. Denn die Tatsache allein, dass sich jemand bereits zweimal angemeldet hat, entscheidet ja noch nicht darüber, ob er den Kurs auch tatsächlich belegen darf. Das soll ja erst später per Zufall ausgelost werden.

Offline

#7 09. November 2018 06:33

antibart
Server-Pate
Registriert: 14. Dezember 2010
Beiträge: 815

Re: Zur Server-Entlastung Bestellungen "zwischenlagern"

Ich habe mit der früheren Editorin gesprochen und dabei Interessantes herausbekommen, was der Sache ein wenig die Kniffligkeit nimmt. Ich hatte ja bereits so eine Vermutung ...

Erstmal ist es keineswegs der Fall, dass die Teilnehmer sich nur für zwei Kurse anmelden können. Annmelden können sie sich soviel, wie sie wollen - aber sie bekommen nur höchstens zwei zugeteilt.

Auch ist keineswegs sicher, dass das Ganze voll automatisiert abläuft. Die Chefin kriegt am Ende die Teilnahmeliste vom Programmierer/Web-Admin zugeschickt und die Matriklenummern werden auf der Seite veröffentlicht. Was genau dazwischen passiert und was davon automatisch läuft, ist noch gar nicht gewiss.

Es könnte es also durchaus sein, dass die Anmeldungen zB in eine Datei gesschrieben werden und der Zufallsgenerator erst nachträglich manuell vom Webadmin in Gang gesetzt wird. Oder während der Anmeldung bereits gefiltert wird.


NaN schrieb:

läuft man Gefahr, dass sich die Studenten als Backup-Lösung einfach wahllos für alles anmelden. Irgendwelche zwei Kurse werden sie ja dann schon bekommen.

Die Gefahr sehe ich weniger. Warum sollten sie das Risiko eingehen, sich für einen halbjährigen Kurs zu verpflichten, der sie nicht die Bohne interessiert oder den sie bereits in einem anderen Semester schon mal belegt haben? Die werden ja nicht jedes mal komplett neu erfunden.

Es sind auch nicht alle Kurse und Dozenten gleich begehrt. Bei dem System, was ich eingerichtet habe, konnte ich sehen, dass manche Kurse nach kürzester Zeit bis auf den letzten Wartelistenplatz gebucht waren, während andere in der gesamten Frist nicht voll wurden.

Beitrag geändert von antibart (09. November 2018 11:13)

Offline

#8 09. November 2018 14:59

NaN
Moderator
Ort: Halle (Saale)
Registriert: 09. November 2010
Beiträge: 4.188

Re: Zur Server-Entlastung Bestellungen "zwischenlagern"

Okay, na wenn das bisher eh so gehandhabt wurde, dann kann man natürlich auch einfach nur erstmal alle Anmeldungen sammeln (ohne Counter) und später "in Ruhe" aussortieren.

Dann würde ich es tatsächlich so machen, dass jede Anmeldung erstmal stumpf in eine CSV-Datei geschrieben wird. Eine CSV-Datei je Kurs. Wenn man die Anmeldung auf z.B. eine Woche verteilt innerhalb der man sich anmelden kann, dann sollte das den Server schon stark entlasten.

Wie dann nachher die Auslosung der Anmeldungen vorgenommen wird, da sind der Fantasie keine Grenzen gesetzt. Ich glaube das ist der eigentliche Knackpunkt. Das kann man über ein CMS machen (Module/Plugin), muss man aber nicht. Man kann die CSV-Datei auch einfach in Excel einlesen (was vermutlich ohnehin getan wird) und von Hand oder ggfs. mit einem Makro filtern. D.h. man bräuchte eigentlich keine wirklich neue Technik einzuführen. Man könnte z.B. bei CMSms mit dem News-Modul, LISE o.ä. die Kurse via Zeitsteuerung anzeigen/ausblenden (für die Anmeldung), aber die Anmeldung selber (also das Befüllen der CSV-Datei) läuft über ein externes PHP-Script, das man einfach ins Template einbettet (via Plugin oder iFrame).
Am Ende braucht man dann nur noch eine Möglichkeit, die gefilterte CSV-Datei je Kurs auf der Seite wieder anzuzeigen. Auch das dürfte nicht das Problem sein.

Also in dem von Dir genannten Rahmen sehe ich kaum Probleme, das umzusetzen. Beim Auslosen der Teilnehmer müsste man evtl. selber programmieren, aber prinzipiell ist die Idee - Server entlasten, indem man erstmal alle Anmeldungen sammelt und später auswertet - machbar. Wenn Du den Zähler bei der Anmeldung eh weglässt und die Kurse somit nicht verschwinden wenn sie voll sind, sondern nur, wenn die Anmeldefrist vorbei ist, dann könntest Du das auch weiterhin wie gewohnt mit LISE und FB umsetzen. Dann kann man sich das mit der CSV-Datei sparen. Hängt natürlich davon ab, ob der Server das weiterhin aushält. Den Umweg über die CSV-Datei am CMS vorbei würde ich nur dann einführen, wenn man den Ansturm innerhalb der Anmeldefrist immer noch nicht aushält.

Offline