Racing Condition beim Drucken?

  • Moin zusammen,

    erstmal großes Lob für den Einsatzmonitor - wir sind gerade mit ausführlichem Testen beschäftigt und nach allem was ich bisher gesehen habe sieht der sehr hilfreich aus - und dann gibt's das ganze auch noch kostenlos, dafür möchte ich mich erstmal bedanken! :)

    Zu meinem Problem: Im Alarmablauf haben wir festgelegt, dass eine Depesche gedruckt werden soll, mit eigenem Template, was soweit auch funktioniert. Nur: Während die Text-Daten (Stichwort, Anschrift, Uhrzeit, Datum) vom aktuellen Einsatz gedruckt werden, sind die Karten (die zwei Bilder) immer vom vorhergenden Einsatz.

    Es ist zu beobachten, dass der Standby-Modus (Kalender) auf die Laden-Ansicht umspringt, dann der Druckvorgang startet (hörbar am Drucker), kurz bevor die Einsatz-Ansicht auftaucht. In der Einsatzansicht fehlen dann in den beiden Karten noch einzelne Tiles, die dann innerhalb weniger Sekunden auftauchen.

    Wenn ich nachdem all das durchgelaufen ist die exportierten Bilder (Karte und Route) für den Druck öffne, sind diese auch korrekt - nur ist zu dem Zeitpunkt bereits die Depesche gedruckt, und zwar mit den - beim Start des Druckvorgangs noch nicht überschriebenen - alten Bildern.

    Als Workaround haben wir momentan den Druckvorgang ganz ans Ende des Alarmablaufs gestellt und direkt davor eine Verzögerung von 10 Sekunden gepackt - im Großteil der Fälle reicht das, damit die richtige Karte gedruckt wird. 100%ige Sicherheit kann das aber natürlich nicht bieten: Was ist, wenn das Internet gerade etwas langsam ist und die Karten länger als 10 Sekunden zum Laden brauchen? Kann hier auf dem Dorf leider schon mal passieren...

    Zugegeben, die Wahrscheinlichkeit, dass das passiert, wird kleiner, je länger die Wartezeit gewählt wird. Aber man verlängert so eben auch die Zeit, bis die Depesche gedruckt wird, selbst dann, wenn die "neuen" Bilder eigentlich schon längst zur Verfügung stehen.

    Optimaler wäre es also, wenn das Programm von sich aus schon sicherstellen würde, dass der Vorgang "Druckauftrag starten" darauf wartet, dass zuvor "Karte laden" und "Karte in Bild exportieren" fertiggestellt wurden.

  • Alarmablauf am besten so aufbauen:

    .....5 Sek. Verzögerung - UI-Reload - 5 oder 10 Sekunden Verzögerung - drucken.....

  • Nur wenn die Karte auf dem EM richtig angezeigt wird, wird sie auch richtig aus gedruckt. Je schneller deine Internet Verbindung und je schneller dein PC ist, umso kürzer kann man die Verzögerung einstellen.

    Da es in der Regel aber egal ist, ob die Depesche nach 10 oder 20 Sekunden gedruckt wird, kann man da ein wenig Sicherheit einbauen.

  • Wie gesagt benutzen wir ja schon die Verzögerung, das funktioniert ganz gut, und wenn die Zeit zu kurz ist, werden wir sie eben hochsetzen.

    Mein Beitrag war eigentlich eher als Bugreport gedacht. Denn dass das Programm mit dem Drucken beginnt, bevor es alle dafür erforderlichen Daten (Karten) fertig geladen hat, ist sicherlich nicht richtig. Stattdessen sollte der Einsatzmonitor warten (und zwar von sich aus, ohne dass ich das einstellen muss), bis die Karten korrekt geladen sind und erst danach den Druckauftrag starten.

    Ich will nicht sagen, dass das äußerst hohe Priorität hat. Die hat es insbesondere deshalb nicht, weil die Verzögerung als annehmbarer Workaround existiert. Das zugrunde liegende technische Problem, das ich hier melden wollte, wird durch die Verzögerung aber nicht behoben.