History | Log In     View a printable version of the current page.  
Issue Details (XML | Word | Printable)

Key: JS-240
Type: Sub-task Sub-task
Status: Closed Closed
Resolution: Fixed
Priority: Major Major
Assignee: Andreas Püschel
Reporter: Andreas Liebert
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
Job Scheduler
enhancements for Job Scheduler parameters (JS-214)

Dynamically react on changes in parameter include files

Created: 25 January 2008 10:47   Updated: 26 August 2008 10:32
Component/s: None
Affects Version/s: None
Fix Version/s: None

Original Estimate: Unknown Remaining Estimate: Unknown Time Spent: Unknown


 Description  « Hide
For jobs/orders in live folders, monitor included parameter files with folder monitoring.
If a parameter file has changed, reload job/order.


 All   Comments   Work Log   Change History      Sort Order:
Andreas Püschel - 04 February 2008 08:08
Soll dieses Verhalten für beliebige Verzeichnisse wirken, die mit <params><include file="..."/></params> angegeben werden? Davon wären auch Verzeichnisse betroffen, die bspw. ausserhalb des Live Folders liegen.

Joacim Zschimmer - 04 February 2008 08:18
Ah, gut aufgepasst. Das würde nur mit größerem Aufwand gehen und dabei die Zahl der Objekte, auf die der Scheduler wartet weiter erhöhen (das Windows-Limit, das wir noch nicht umgangen haben, ist 64).

Meine Aufwandsschätzung gilt nur für Dateien im selben Verzeichnis. An andere habe ich nicht gedacht.

Die Datei könnte auch irgendwo anders im Konfigurationsverzeichnis stehen (egal, welcher Zweig). Die Datei muss dann nur in einem Verzeichnis stehen, das vom Scheduler für die eigene Konfiguration überwacht wird. Mir wären auch standardisierte Dateinamensendungen recht. Ich möchte das noch einmal überdenken.

Andreas Liebert - 15 February 2008 12:35
Aus dem Telefonat vom 14.02.2008:
Es gibt folgendes Probleme:
1. Es bereitet wesentlich mehr Aufwand, auch Parameterdateien zu überwachen, die sich nicht unterhalb des live (oder cache) ordners befinden.
2. Man möchte Parameterdateien relativ adressieren. Im selben ordner -> einfach. Absolut in einem ganz anderen Pfad -> kann ausserhalb von live liegen (Problem 1). Relativ zum live Wurzelverzeichnis, wenn es z.B. eine globale überwachte Parameterdatei ist, die von Jobs in mehreren Live Ordneren verwendet wird -> ${SCHEDULER_LIVE} als Umgebungsvariable hülfe dabei nicht immer, denn es würde auf den live ordner zeigen. Wenn aber über Zentrale konfiguration die Dateien im cache ordner landen, stimmt der Pfad nicht.

Benötigt wird also eine Möglichkeit, immer den richtigen (denn es gibt ja 2) Live Wurzelordner zu Adressieren, und nur unterhalb dieser überwachten Ordner Änderungen and der Parameterdatei zu bemerken.

Lösung:
neues Attribut "live_file" in <include>
live_file alternativ zu file

Regeln für <include live_file="...">:
. ist der aktuelle Ordner der Datei, die das include verwendet
/ ist die jeweils richtige Liveordner Wurzel (also live oder cache)
mit live_file refernzierte Parameterdateien werden überwacht, Änderungen werden bemerkt
Es ist verboten, mit ".." ausserhalb des Live Baums zu gehen

Regeln für <include file="..."> in einer Hot Folder Datei:
. ist der aktuelle Ordner der Datei, die das include verwendet
/ ist die Wurzel des Dateisystems
Die Datei wird nicht überwacht
Es ist erlaubt, mit ".." oder absoluter Adressierung ausserhalb des Live Baums zu gehen

Regeln für <include file="..."> in einer normalen Konfigurationsdatei:
. ist das Arbeitsverzeichnis des Schedulers
/ ist die Wurzel des Dateisystems
Die Datei wird nicht überwacht
Es ist erlaubt, mit ".." oder absoluter Adressierung ausserhalb des Live Baums zu gehen

Der Vorteil dieser Lösung ist, dass mit der Unterscheidung file<->live_file (und dessen Einschränkungen) klar ist, welche Parameterdateien dynamisch aktualisiert werden (können) und welche nicht.

Joacim Zschimmer - 26 February 2008 16:08
JS-215 ist auf dem neueren Stand.