Feuertaufe bestanden :-)

In diesem Forum können Wünsche geschrieben werden, die sich Benutzer für zukünftige OrderSprinter-Versionen wünschen.
MartinH

Feuertaufe bestanden :-)

Beitrag von MartinH »

Hallo Stefan,

zunächst mal großes Lob für deine Arbeit am Ordersprinter.

Nach vielen Überlegungen vorab, testen, konfigurieren usw. hab ich den Ordersprinter in der aktuellen Version am Wochenende bei unserem Feuerwehrfest eingesetzt und er hat seine Feuertaufe bei uns sehr gut überstanden.

Eingesetzt wurde als Server ein Laptop mit etwas älterer i3 cpu und Win 7 32 bit. Darauf lief XAMPP mit PHP 7.
Daran 1 Bondrucker mit Windows-Printserver und abgesetzt davon 2 weitere Laptop, mit Windows-Printserver und Bondrucker.

User waren 6 Kellner mit unterschiedlichsten Mobilgeräten.

Arbeitsablauf war mit Bons. In den üblichen 90 Minuten Mittags-Spitzenzeit hatten wir rund 700 Orders, also so alle 7 bis 8 Sekunden einen Bon.

Obwohl die Kellner allesamt Laien waren, kamen sie mit dem OS sehr gut zurecht. Bei den Nachgesprächen nach der Veranstaltung lobten alle das System und hatten nur Kleinigkeiten, welche sie vermisst hatten. Was einige Kellner als Anregung brachten, wäre ein optisches Feedback beim Klick auf eine Ware im Bestellprozess.

Wir Feuerwehren schlagen gerne Mannschaftsweise auf einem Fest auf und so kommt es öfters vor, dass ein Kellner die Bestellung für 20-30 Personen gleichzeitig aufnimmt. Wenn dann mehrmals hintereinander auf den selben Button geklickt wird, weil die Gäste nacheinander die selbe Ware bestellen, muss man nach unten scrollen, wenn man unsicher ist ob der Klick angenommen wurde.
Da hätten sich mehrere unserer Kellner gewünscht, dass der Button als optisches Feedback kurz eine andere Farbe annimmt, z. B. kurz grün wird und dann wieder gelb ist.

Der OS wurde natürlich auch von den Gästen bemerkt (mobile Bestellaufnahme ist noch nicht so üblich bei Vereins- und Feuerwehrfesten in unserer Gegend) und ich habe gerne deine Webseite genannt. Der OS wird in nächster Zeit in unserer Gegend dann wohl noch häufiger zum Einsatz kommen :D

Wie üblich gibt es nach so einem Ersteinsatz auch ein paar "lessions learned":

1) Bondruck
Mit zunehmender Zeit und Orderanzahl wurde der Bondruck merklich langsamer. Zum Schluss dauerte der Start des Ausdrucks rund 10 Sekunden, obwohl das Abfrageintervall der Printserver bei 2 Sekunden eingestellt war. Ich vermute mal, dass hier einfach der Server-Laptop (i3 M350, 4 GB, 32 bit) etwas in die Knie gegangen ist. Zumal da auch noch ein Drucker angeschlossen war und daher ein Win-Printserver drauf lief.
Ich werde das nächste mal Server und Bondruck voneinander trennen und als Server einen Laptop mit mehr Leistung an einem geschützten Ort aufstellen. Ich habe keine Ahnung, wie sehr sich das Debug-Logging auf die Performance auswirkt, das könnte man natürlich auch noch ausschalten, ich fand das Logging aber für den ersten Einsatz bei uns ganz sinnvoll.

2) Doppelte Bons
Unsere Kellner und Thekenkräfte berichteten, dass Bons wohl doppelt gedruckt wurden. Ich hab das für einen Fall an den sie sich erinnern konnten mal nachgesehen und gesehen, dass die Waren von der selben Bedienung im Abstand von 40 Sekunden erneut bestellt wurden.
Ich vermute mal, dass hier die Antwortzeit vielleicht etwas länger war und die Bedienung daher der Meinung war, die Bestellung hat nicht geklappt und hat neu bestellt. Mit schnellerer Server-Hardware ist das dann vielleicht auch besser.
Veileicht wäre hier ein konfigurierbares Feedback-Fenster sinnvoll.
Also wenn aktiviert, dann "Bestellung eintippen" -> Button "Arbeitsbons" drücken -> neues Popup: "Bestellung übermittelt"

An ernsthafteren Problemen gab es nur ein Problem:
Wir hatten über den Tag verteilt so ca. 6 mal die Situation, dass der OS nicht mehr erreichbar war und die Kellner bekamen einen 404. Nachdem dies das erste mal genau in der Spitzenzeit kurz nach 12 Uhr passierte, war die Aufregung natürlich kurz groß. Als Quickfix brachte ein Neustart des Apache dann jeweils Abhilfe. Für weitere Fehlersuche war im laufenden Betrieb leider keine Zeit.

Ich hab jetzt im Access-log des Apache gesehen, dass ein "GET /[object%20Object] HTTP/1.1" 404 1308" versucht wurde und "[object%20Object]" gibt es natürlich nicht. Ich sende dir per Mail mal unsere Daten und logs, vielleicht kannst du ja was finden.

Wünsche und Verbesserungsvorschläge sind natürlich nach der Veranstaltung auch einige aufgetreten, aber das ist wirklich "jammern auf sehr hohem Niveau" :-)

Trotzdem hier mal aufgeführt, vielleicht magst ja was in eine der folgenden Versionen einfließen lassen (oder ist vielleicht sogar schon drin nur noch nicht von mir entdeckt):

1) optisches Feedback bei Klick auf Warenbon (siehe oben)

2) Feedback-Meldung nach erfolgreicher Übermittlung der Order (siehe oben)

3) Druck-Intervall bei WIndows-Druckserver lokal überschreibbar.
Der Abfrageintervall der Druckserver ist ja in der Admin-Ansicht konfigurierbar. Bei uns wäre es so, dass man hier mit unterschiedlichen Intervallen etwas Last vom System nehmen könnte und auch die Log-Einträge reduzieren könnte.
Wir haben z. B. je 2 Getränke- und Speisen-Bondrucker: Einer an der Hauptkasse und einer an der Getränke- bzw. Essensausgabe.
Während es an der Kasse wichtig ist, dass die Bons schnell kommen (Gast steht ja vor einem) und ein Intervall von 2 Sekunden optimal ist, würde es an den Ausgabestellen ein Intervall von 10 Sekunden ausreichen.

Optimal wäre es, wenn man hier die serverseitige Einstellung beim Aufruf des Windows-Printservers lokal überschreiben könnte (z. B. durch Kommandozeilenparameter).

Alles in allem noch mal vielen Dank für das tolle Programm und viele Grüße aus dem Süden

Martin
pichel
Administrator
Beiträge: 1154
Registriert: So 13. Sep 2015, 19:48
Wohnort: Hamburg
Kontaktdaten:

Re: Feuertaufe bestanden :-)

Beitrag von pichel »

Hallo Martin,

vielen Dank für den ausführlichen Erfahrungsbericht. Ich versuche mal auf die einzelnen Punkte einzugehen,

1. Performance beim Bondruck: Ich nehme an, dass die Datenbank mit bestimmten Abfragen beschäftigt ist, die die Abfrage nach den zu druckenden Bons ausbremsen, denn die Abfrage der Druckjobs sollte eigentlich sehr schnell gehen. Die Intervalle für die Druckjobs habe ich nicht wegen Performancegründen konfigurierbar gemacht, sondern weil einige Webhoster die Verbindungen kappen, wenn zuviele gleichartige Abfragen in kurzen Zeitabständen und über eine lange Dauer eintreffen. Hast du mal versucht, "Zeige Anzahl vorbereiteter Produkte in mobiler Tischansicht an:" auf "Nein" einzustellen? Ich befürchte, dass die dahinter stehende SQL-Abfrage bei einer gefüllten Datenbank sehr lange dauert und die DB sehr stresst.

2. Doppelte Bons: Ich nehme an, es sind Arbeitsbons gemeint. Man konnte bis zu einer Version 1.5.25 nach dem Druck auf "Arbeitsbon" über Browser-Zurück.Button die Bestellung erneut absenden. Sollte ab 1.5.26 nicht mehr funktionieren. Sieht man denn im Tischprotokoll, dass die Bestellung aktiv erneut abgeschickt wurde?

3. 404-Fehler: Weißt du, ob das Alarmsymbol der fehlenden Serververbindung in der Statusleiste eingeblendet war?
connection.png
connection.png (1.34 KiB) 1119 mal betrachtet
Das Symbol wird oben eingeblendet, wenn der Client keine Verbindung zum Server aufbauen kann.

4. optisches Feedback bei Klick auf Warenbon, Feedback-Meldung nach erfolgreicher Übermittlung der Order:
Nun ja, ist leider nicht so ganz trivial einzubauen. Im Moment kann man nur einen Piepton bei Auswahl eines Produkts ausgeben lassen, der aber in einer lauten gastronomischen Umgebung leider nicht unbedingt gut wahrgenommen wird. Aber ja, ist auf der Todo-Liste.

5. Druck-Intervall: Wie oben geschrieben habe ich den Verdacht, dass nicht die Abfrage der Druckjobs das Problem ist (das sind einfache Abfragen a la "SELECT id,content,type FROM printjobs WHERE type='1' AND removed is null AND printer='2' ORDER BY id"), sondern die DB durch andere Abfragen ausgebremst wird. Leider sind im Gegensatz zu Postgresql die Auswertungen der MySQL-Performance bzw, die Analyse, welche Abfragen wie auf die Gesamtperformance einwirken, sehr begrenzt. Ich werde trotzdem versuchen, die schlimmsten Übeltäter ausfindig zu machen und zu verbessern.

Nochmals danke für den ausführlichen Bericht. Ich werde mir die einzelnen Punkte in den nächsten Wochen noch genauer anschauen.

Gruß,

Stefan
Stefan Pichel
Entwickler der Kassensoftware OrderSprinter (http://www.ordersprinter.de)
MartinH

Re: Feuertaufe bestanden :-)

Beitrag von MartinH »

Hallo Stefan,

zu 1)
Das "Zeige Anzahl vorbereiteter Produkte in mobiler Tischansicht an:" stand auf "nein", aber das Debuglogging war eingeschaltet und hat auch rund 750.000 Datensätze erzeugt.

zu 2)
Das Tischprotokoll hab ich nicht mehr zur Verfügung, da ich den Tagesabschluss schon gemacht habe.

Es handelt sich bei dem einen Fall, denn ich genau weiss um 4 x Ware mit Productid 3 für tablenr 20, bestellt vom Endgerät mit IP-Adresse 146 von orderuser 13 um ca. 11:53 Uhr.

In den Daten und Logs, die ich dir per Mail geschickt habe, sind da folgende EInträge:

Tabelle Queue:
Bestellung 4 x um 11:53:25 mit ID 254,262,263,266
Bestellung 4 x um 11:54:16 mit ID 268,276,277,280

In der Apache access.log finde ich folgendes:
11:53:24 Aktion "addProductListToQueue" von dieser IP-Adresse
11:54:15 Aktion "addProductListToQueue" von dieser IP-Adresse

Dazwischen waren noch weitere Aktionen, wie z. B. um 11:54:12 ein "getOrderVolume"

Ich gehe mal davon aus, dass der Kellner die Ware irrtümlich zwei mal bestellt hat.
Ich vermute fast, dass er zuerst auf "Arbeitsbons" gegangen ist, danach gleich kassieren wollte und die Ware noch mal eingetippt hat.
Wobei die erste Bestellung dann eigentlich als unbezahlt auf dem Tisch aufgeführt sein müsste und das war (zumindest am Ende der Veranstaltung) nicht so.
Ist halt alles etwas schwierig nachzuvollziehen im Nachhinein, aber vielleicht findest du in den Logs etwas.

Ich habe hier aber auf jeden Fall eher "human error" in Verdacht.

zu 3)
Kann ich leider nicht sagen, ob hier dieses Symbol angezeigt wurde oder nicht. Ich vermute aber mal eher nicht, denn ich habe bei der Einschulung den Kellnern gesagt, dass sie auf dieses Symbol und das durchgestrichene Druckersymbol achten sollen und es hat keine der Kellner was gesagt, dass hier eine solche Anzeige war. Auch haben die Printserver in den Ausfallzeiten fleissig weiter Daten erzeugt und die PCs mit den Printservern waren auch per Wlan angebunden. Ich gehe daher mal davon aus, dass das Wlan zur Verfügung stand und funktionierte.

Viele Grüße

Martin
Antworten