Zum Hauptinhalt springen
Version: 7.1

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 # base uri for feeder
api_token: abc123 # api token for API

workflow_id: 3 # id of the workflow to execute
queue_name: fast-queue # optional queue name, if not given the organisation queue is used
# (name of the queue "Meine Organisation".paremeterize() -> "meine-organisation")
# to run the corresponding worker: "QUEUES=fast-queue rails jobs:work"

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 # once the file is stable, move it here and send this path to the workflow execution

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: C:/temp/beispiel_state.yml # Persistenzdatei (muss nicht selbst kreiert werden)

webservice:
uri: localhost:3000 # Basis-URL von feeder
api_token: abc123 # Token für die API-Authentifizierung

workflow_id: 217 # das SIP soll mit dem Workflow Nr. 217 verarbeitet werden

path:
parent: false # diese drei Angaben bestimmen, wie der Pfa
absolute: false # zum SIP im Hotfolder an den
extension: false # Workflow übermittelt werden soll

temporary_folder_path: C:/temp/sips # 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:

ParameterWert
Applikationspfad...\docuteam\apps\ruby23\bin\bundle.bat
Start-Verzeichnis...\docuteam\apps\feeder_ruby
Argumenteexec ...\docuteam\apps\ruby23\bin\ruby lib\doc_observer\
doc_observer.rb <observer_label>

<observer_label> referenziert einen Eintrag in der Datei doc_observer.yml
für obiges Beispiel also beispiel_hotfolder