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.
- Zeitplan
- 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.