ReportWeb:Controller

Das Skript "reportweb-worker.ps1" generiert genau einen Report. Es wäre müßig, nun für jeden Report einen eigenen Task anzulegen. Zudem kann der Windows Taskplaner kann zwar Skripte auch wiederholt starten, aber 1 Minute ist eine Mindestwartezeit.

Das ist für einige Dinge auch vielleicht zu lange. Das Skript "reportweb-controller.ps1" hat als Dauerläufer folgende Aufgaben:

  • Regelmäßig nach anstehenden Reports zu suchen und diese zu starten
    Dazu gibt es zwei Gründe
    • Zeitplan
      Alle Reports gemäß des internen Schedulers zu starten.
    • "Trigger"-Events abzuarbeiten
      Das Skript schaut nach, ob durch die ASPX-Seite (Siehe Reportweb:Trigger) eine Triggerdatei angelegt wurde, die eine beschleunigste Ausführung eines Reports anfordert.
  • Throttling
    Trotzdem prüft der Controller, dass das System nicht überlastet wird, indem die Anzahl der gleichzeitig aktiven Reports limitiert ist. Sie werden auch nicht mehrfach gestartet oder innerhalb einer vorgegebenen "Wartezeit".
  • Überwachung der Reportgenerierung
    In der Microsoft-Denkweise wäre dies so etwas wie ein "Controller", der den Worker überwacht. Der Controller kann auf Fehler desWorker generieren.
  • Summary-Report erstellen
    Immer wenn ein Report gelaufen ist, dann erkennt dies dieses Skript anhand des "lastModifedDate" und aktualisiert die Summary-Seite.

Sie merken vielleicht, dass der Aufbau eines solchen ReportWeb doch etwas umfangreicher ist, als die meisten bislang gedacht haben.