Hotfolder
Konfiguration
Neben dem manuellen Starten von Workflows besteht die Möglichkeit, bestimmte Workflows automatisiert zu starten. Dies geschieht in Verbindung mit einem sogenannten "Hotfolder". Ein Hotfolder ist ein Ordner, der gleichsam unter Beobachtung steht: wird darin ein SIP abgelegt, beginnt automatisch die Verarbeitung dieses SIP mit einem bestimmten Workflow.
Die Konfiguration von solchen Hotfoldern wird in der Datei <Installationsordner>\config\doc_observer.yml
vorgenommen.
label_of__hotfolder:
directory_watcher:
directory: /tmp # directory to watch
glob: */** # pattern for files to watch
interval: 5.0 # interval between runs (in seconds)
stable: 2 # number of runs until a file is stable (only trigger when copying is finished)
persist: /tmp/dw_state.yml # path for persistence file
webservice:
uri: localhost:3000 # uri for the webservice
user: user # user name for basic authentication
password: passwort123 # password for basic authentication
workflow_id: 3 # id of the workflow to execute
workflow_ids: [1, 2] # list of workflow ids to execute
teardown_workflow_id: 1 # this workflow gets executed when a worfklow in the list failes (used to clean-up, send message, etc.)
path:
parent: false # submit the parent path of the object { true | false (default) }
absolute: false # submit the absolute path of the object { true | false (default) }
extension: false # submit the filename with the extension { true | false (default) }
temporary_folder_path: C:/temp # path for temporary files
Beispiel
Folgendes Beispiel richtet einen Hotfolder ein unter C:/beispiel
. Bleibt in diesem Ordner eine ZIP-Datei 10 Sekunden lang unverändert liegen, so wird diese Datei mit dem Workflow mit der ID 217
verarbeitet. Dieser Workflow gehört in docuteam feeder zur Organisation mit der ID 1
. Schlägt der so gestartete Workflow fehl, so wird der Workflow mit der ID 34
ausgeführt (um z.B. eine Email zu versenden):
beispiel_hotfolder: # die Bezeichnung dieses Hotfolders lautet "beispiel_hotfolder"
directory_watcher:
directory: C:/beispiel # der Ordner, der überwacht wird
glob: '*.zip' # nur ZIP-Dateien sollen beachtet werden
interval: 5.0 # die Zeitspanne zwischen den Überprüfungen beträgt 5 Sekunden
stable: 2 # eine Datei muss 2 Intervalle unverändert bleiben, hier also 10 Sekunden
persist: /tmp/beispiel_state.yml # Persistenzdatei (muss nicht selbst kreiert werden)
webservice:
uri: localhost:3000/organizations/1 # hier wird der Hotfolder für die Organisation Nr. 1 betrieben
user: someUserName # Benutzername
password: somePassword # Passwort
workflow_ids: [217] # das SIP soll mit dem Workflow Nr. 217 verarbeitet werden
teardown_workflow_id: 34 # falls der Workflow Nr. 217 abbricht, wird Workflow Nr. 34 ausgeführt
path:
parent: false # diese drei Angaben bestimmen, wie der Pfad
absolute: false # zum SIP im Hotfolder an den
extension: false # Workflow übermittelt werden soll
temporary_folder_path: C:/temp # Pfad für temporäre Dateien
Service/Dämon
Zur laufenden Überwachung des Hotfolders muss ein entsprechender Service oder Dämon eingerichtet werden. Unter Windows kann dies beispielsweise mittels NSSM geschehen:
Parameter | Wert |
---|---|
Applikationspfad | ...\docuteam\apps\ruby23\bin\bundle.bat |
Start-Verzeichnis | ...\docuteam\apps\feeder_ruby |
Argumente | exec ...\docuteam\apps\ruby23\bin\ruby lib\doc_observer\ doc_observer.rb <observer_label> <observer_label> referenziert einen Eintrag in der Datei doc_observer.ymlfür obiges Beispiel also beispiel_hotfolder |