Metainformationen zur Seite
  •  

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
speedy:30_modules:spooler [2020/11/18 12:40] – [Lieferumfang] adminspeedy:30_modules:spooler [2024/04/11 10:38] (aktuell) speedy
Zeile 1: Zeile 1:
 ====== Spooler ====== ====== Spooler ======
-Die speedy/PDM Spooler Anwendung überwacht ein oder mehrere Verzeichnisse und führt nach Eintreffen einer neuen Dateiin ein überwachtes Verzeichnis, einen definierten Befehl aus.\\ Es können beliebig viele Verzeichnisse überwacht werden. Die Überwachung kann verschiedene Dateiendungen oder Dateinamensmuster unterscheiden.+Die Spooler Anwendung überwacht ein oder mehrere Verzeichnisse und führt nach Eintreffen einer neuen Datei in ein überwachtes Verzeichnis, einen definierten Befehl aus.\\  
 +Es können beliebig viele Verzeichnisse überwacht werden. Die Überwachung kann verschiedene Dateiendungen oder Dateinamensmuster unterscheiden. \\ 
 +Die Anwendungsoberfläche des Spooler zeigt alle zu verarbeitenden Dateien in der Reihenfolge an, in der sie eingetroffen sind. \\
 [{{speedy:spooler:speedy7_spooler_pic1.jpg|}}] [{{speedy:spooler:speedy7_spooler_pic1.jpg|}}]
 +In der Spalte Status wird der aktuelle Abarbeitungsstatus angezeigt.\\
 +Ist eine Datei abgearbeitet verschwindet sie aus der Liste und wird je nach Konfiguration in ein Archivverzeichnis verschoben.
 \\ \\
 +
 ==== Lieferumfang ==== ==== Lieferumfang ====
 ^Datei^Beschreibung^ ^Datei^Beschreibung^
-|bin32\dwSpool7.exe | Spooler Programm | +|bin64\dwSpool7.exe | Spooler Programm | 
-|bin64\dwSpool7.exe | ::: | +|bin64\dwSpool.ini | Konfigurationsdatei  |
-|bin32\dwSpool.ini | Konfigurationsdatei +
-|bin64\dwSpool.ini | ::: |+
  
 ===== Konfiguration ===== ===== Konfiguration =====
 Die Konfiguration des Spoolers erfolgt mit Hilfe einer Konfigurationsdatei im INI-Format.  Die Konfiguration des Spoolers erfolgt mit Hilfe einer Konfigurationsdatei im INI-Format. 
 Die Konfigurationsdatei muss im gleichen Verzeichnis wie der das Spooler Programm liegen. Die Konfigurationsdatei muss im gleichen Verzeichnis wie der das Spooler Programm liegen.
 +<code>
 +[SYSTEM]
 +Application = "dwSpool"
 +Version = 1
  
-[SYSTEM]\\ +[SPOOLER] 
-Application = “dwSpool“\\ +TimeOut=500 
-Version = 1\\ +WorkDir=.\spooler\ 
-\\ +ErrorDir=.\spooler\error\ 
-[SPOOLER]\\ +LogDir=.\spooler\log\ 
-TimeOut=500\\ + 
-%%WorkDir=.\spooler\%%\+[WATCHDIR] 
-%%ErrorDir=.\error\%%\+WatchDir1=.\import\ 
-%%LogDir=.\log\%%\+ 
-\\ +[WatchDir1.CSV] 
-[WATCHDIR]\\ +Filter=art*.csv 
-%%WatchDir1=.\import\%%\+Description= 
-\\ +Command=.\dwImport.exe -i "%1-t docpropimport -e "%2-l "%3-q 
-[WatchDir1.CSV]\\ +</code> 
-Filter=art*.csv\\ +\\ 
-Description=\\ +
-Command=.\dwImport.exe -i %1“ -t docpropimport -e %2“ -l %3“ -q+
  
 ^Schlüssel^Beschreibung^ ^Schlüssel^Beschreibung^
 |**[SPOOLER]**|| |**[SPOOLER]**||
 |TimeOut| Wartezeit, in Millisekunden, zwischen erkennen einer neuen Datei und ausführen des entsprechenden Befehls. | |TimeOut| Wartezeit, in Millisekunden, zwischen erkennen einer neuen Datei und ausführen des entsprechenden Befehls. |
-|ProcessPriority| Prozess Priorität.\\ 0 := Idle\\ 1 := Normal\\ 2 := Hoch\\ 3 := Echtzeit |+|ProcessPriority| Prozess Priorität.\\ 0 := Idle \\ 1 := Normal (Standard) \\ 2 := Hoch \\ 3 := Echtzeit |
 |WorkDir| Allgemeines Arbeitsverzeichnis.\\ Nach dem Eintreffen einer neuen Datei, in ein überwachtes Verzeichnis, wird diese erstmals in das Arbeitsverzeichnis verschoben und anschließend von dort verarbeitet. | |WorkDir| Allgemeines Arbeitsverzeichnis.\\ Nach dem Eintreffen einer neuen Datei, in ein überwachtes Verzeichnis, wird diese erstmals in das Arbeitsverzeichnis verschoben und anschließend von dort verarbeitet. |
-|ErrorDir| Verzeichnis für fehlerhaft verarbeitete Dateien .| +|ErrorDir| Verzeichnis für fehlerhaft verarbeitete Dateien. | 
-|LogDir| Protokollverzeichnis. |+|LogDir| Protokollverzeichnis. Das Verzeichnis muss sich vom allgemeinen Protokollverzeichnis unterscheiden. |
 |ArchiveDir| Archivverzeichnis. | |ArchiveDir| Archivverzeichnis. |
 | | | | | |
Zeile 46: Zeile 51:
 |...| | |...| |
 | | | | | |
-|**[WatchDir1.EXT]**|Für jedes zu überwachende Verzeichnis und die dazugehörige Dateierweiterung existiert ein eigener Konfigurationsabschnitt.| +|**[WatchDir1.EXT]**|Für jedes zu überwachende Verzeichnis und die dazugehörige Dateierweiterung existiert ein eigener Konfigurationsabschnitt. | 
-|Description|Beschreibung des Filters.| +|Description | Beschreibung des Filters. | 
-|Filter|Dateifilter der zu überwachenden Dateien.\\ z.B.: Filter=*.txt\\ Oder Filter=art*.csv+|Filter | Dateifilter der zu überwachenden Dateien.\\ z.B.: Filter="*.txt" //Alle Dateien mit Dateiendung "txt" werden überwacht und abgearbeitet. // \\ Oder Filter="art*.csv" //Alle Dateien, die mit "art" beginnen und die Dateiendung "csv" haben werden überwacht und abgearbeitet//   
-|WorkDir|Besonderes Arbeitsverzeichnis zur Abarbeitung der Dateien.\\ [optional]| +|WorkDir | Besonderes Arbeitsverzeichnis zur Abarbeitung der Dateien.\\ [optional] | 
-|Command|Befehlszeile, die für jede Datei ausgeführt wird.\\ Die Befehlszeile muss mind. einen Platzhalter zur Übergabe des Dateinamens beinhalten. Zusätzlichen stehen noch weitere Platzhalter zur Übergabe von Fehler- und Protokollverzeichnis zur Verfügung.\\ z.B.: <code>Command=dwImport.exe "%1" "%2" "%3"</code> \\ %1 := Arbeitsdatei \\ %2 := Fehlerverzeichnis \\ %3 := Protokollverzeichnis \\ %4 := Archivverzeichnis | +|Command | Befehlszeile, die für jede Datei ausgeführt wird.\\ Die Befehlszeile muss mind. einen Platzhalter zur Übergabe des Dateinamens beinhalten. Zusätzlichen stehen noch weitere Platzhalter zur Übergabe von Fehler- und Protokollverzeichnis zur Verfügung.\\ z.B.: <code>Command=dwImport.exe "%1" "%2" "%3"</code> \\ %1 := Arbeitsdatei \\ %2 := Fehlerverzeichnis \\ %3 := Protokollverzeichnis \\ %4 := Archivverzeichnis | 
-|ShowWindow| Definiert die Anzeigeoption für das Befehlsfenster.\\ 0:=SW_HIDE (standard)\\ 1:=SW_SHOWNORMAL \\ [optional]| +|ShowWindow | Definiert die Anzeigeoption für das Befehlsfenster.\\ 0:=SW_HIDE (standard)\\ 1:=SW_SHOWNORMAL \\ [optional] | 
-|UseAllEqual| Definiert, ob alle gleich benannten Dateien ebenfalls mit in das Arbeitsverzeichnis kopiert werden. \\ [optional] | +|UseAllEqual | Definiert, ob alle gleich benannten Dateien ebenfalls mit in das Arbeitsverzeichnis kopiert werden. \\ [optional] | 
-|ErrorDirVerzeichnis für fehlerhaft verarbeitete Dateien. [optional] | +|WaitTime Definiert die maximale Wartezeit in Millisekunden, die der Überwachungsprozess wartet bis die Anwendung automatisch beendet wird. \\ [optional], Standardwert :1800000 (30 Minuten) | 
-|ArchiveDir| Archivverzeichnis. [optional] | +|ErrorDir Verzeichnis für fehlerhaft verarbeitete Dateien[optional] 
- +|ArchiveDir Archivverzeichnis[optional] 
-====== Jobserver ====== +\\ \\ \\
-Um einen Jobserver einzurichten wird der Spooler-Mechanismus genutzt. Jobs können nur abgearbeitet werden wenn die entsprechende Konfiguration erstellt wurde und die entsprechenden Module vorhanden sind. Es wird eine Transferdatei genutzt um die Jobs an den Jobserver zu übergeben. Diese Datei hat die Endung *.speedyjob. Wird ein Jobserver verwendet werden die Jobs auf dem Server ausgeführt.\\ +
-Dies bedeutet:    +
-  * Bei Druckjobs muss das verwendete CAD System vorhanden sein +
-  * Entsprechende Leistung muss auf dem Server vorhanden sein +
-\\ +
-Momentan verfügbare Jobs: +
-  * jsPlot: Stapelbearbeitung auf dem Jobserver +
-  * jsRendition: Bildgenerierung/Vorschaugenerierung auf dem Jobserver +
-==== Ablauf des Jobserver ==== +
-Der Jobserver überwacht ein Verzeichnis. Befindet sich in diesem Verzeichnis eine *.speedyjob-Datei wird diese eingelesen und die entsprechenden Einträge in der js_jobs Tabelle in der Datebank gemacht. Danach wird die speziell für diesen Jobtyp eingestellt .exe aufgerufen die dann den entsprechenden Druckjob ausführt. +
-==== Konfiguration ==== +
-Um den Spooler als Jobserver zu Nutzen ist folgende Konfiguration in der dwSpool.ini zu machen: +
- +
-[WatchDir1.SPEEDYJOB\\ +
-Filter=*.speedyjob \\ +
-Description= \\ +
-Command=%1 \\ +
-ShowWindow = 1 \\ +
- +
-Dies dient als Beispiel und kann ihrer Konfiguration angepasst werden.\\ +
-Desweiteren werden 3 Tabellen in der Datenbank benötigt: +
-  * js_jobs +
-  * js_proc +
-  * js_types +
- +
-Diese 3 Tabellen nutzt der Jobserver um die Jobs richtig abzuarbeiten. +
- +
-In der **js_types** Tabelle werden die zu verfügbar stehenden Jobs definiert +
-^Schlüssel^Beschreibung^ +
-|types_id|ID des Typs| +
-|types_name|Name des Types. Beispiel: plot->Beschreibt den Druckjob| +
-|types_parallelcount|Beschreibt wieviele Prozesse von diesem Typ gleichzeitig gestartet werden können| +
-|types_maxtime|Maximale Zeit die ein Job brauchen darf(in Millisekunden). Nach dieser Zeit wird der Job beendet. Dies kann genutzt werden um aufgehängte Jobs neu starten zu können+
-|types_killable|Gibt an ob nach abgelaufener maxtime der Prozess beendet werden kann oder nicht| +
-|types_maxrestart|Max Wert wie oft ein Prozess erneut gestartet werden kann| +
-|types_settinghead|gibt den Knoten der Eigenschaften an die zu diesem Job gehören. Beispiel: plot-> dadurch werden die Einstellungen plot.jobserver eingelesen und verwendet. \\ *.jobserver.available gibt an ob der Jobserver aktiv ist. \\ *.jobserver.path gibt an welcher Ordner überwacht werden soll.| +
-|types_exepath|Gibt an wo die EXE liegt die gestartet werden soll.| +
-|types_flag|Allgemeines Flag| +
- +
-Beispielkonfiguration eines Drucktyps:\\ +
-{{ :speedy:30_modules:jobserver_typconfig.jpg? |}} +
- +
-==== Tabellen ==== +
-Tabellendefinitionen der Jobserver Tabellen. +
- +
-**js_jobs** +
-<code SQL> +
-CREATE TABLE `js_jobs` ( +
- `jobs_id` INT(11) NOT NULL AUTO_INCREMENT, +
- `jobs_type` VARCHAR(50) NULL DEFAULT NULL, +
- `jobs_schedule` DATETIME NULL DEFAULT NULL, +
- `jobs_prior` INT(11) NULL DEFAULT '0', +
- `jobs_createdby` VARCHAR(50) NULL DEFAULT NULL, +
- `jobs_createdat` DATETIME NULL DEFAULT NULL, +
- `jobs_response` INT(11) NULL DEFAULT '0', +
- `jobs_responseusr` VARCHAR(50) NULL DEFAULT NULL, +
- `jobs_host` VARCHAR(50) NULL DEFAULT NULL, +
- `jobs_time` DATETIME NULL DEFAULT NULL, +
- `jobs_flag` INT(11) NULL DEFAULT '0', +
- `jobs_path` VARCHAR(255) NULL DEFAULT NULL, +
- `jobs_restarted` INT(11) NULL DEFAULT '0', +
- PRIMARY KEY (`jobs_id`) +
-+
-COLLATE='latin1_swedish_ci' +
-ENGINE=InnoDB +
-AUTO_INCREMENT=85 +
-+
- +
-</code>\\ +
- +
-**js_proc** +
-<code SQL> +
-CREATE TABLE `js_proc` ( +
- `proc_id` INT(11) NOT NULL AUTO_INCREMENT, +
- `proc_jid` INT(11) NOT NULL, +
- `proc_jsdtype` VARCHAR(50) NULL DEFAULT NULL, +
- `proc_startat` DATETIME NULL DEFAULT NULL, +
- `proc_endat` DATETIME NULL DEFAULT NULL, +
- `proc_result` VARCHAR(255) NULL DEFAULT NULL, +
- `proc_finished` INT(11) NULL DEFAULT '0', +
- `proc_flag` INT(11) NULL DEFAULT '0', +
- PRIMARY KEY (`proc_id`), +
- INDEX `proc_jid` (`proc_jid`) +
-+
-COLLATE='latin1_swedish_ci' +
-ENGINE=InnoDB +
-AUTO_INCREMENT=27381 +
-+
- +
-</code>\\+
  
-**js_types** 
-<code SQL> 
-CREATE TABLE `js_types` ( 
- `types_id` INT(11) NOT NULL AUTO_INCREMENT, 
- `types_name` VARCHAR(50) NULL DEFAULT NULL, 
- `types_parallelcount` INT(11) NULL DEFAULT NULL, 
- `types_maxtime` INT(11) NULL DEFAULT NULL, 
- `types_killable` INT(11) NULL DEFAULT '0', 
- `types_maxrestart` INT(11) NULL DEFAULT '0', 
- `types_settinghead` VARCHAR(50) NULL DEFAULT NULL, 
- `types_exepath` VARCHAR(255) NULL DEFAULT NULL, 
- `types_flag` INT(11) NULL DEFAULT NULL, 
- PRIMARY KEY (`types_id`) 
-) 
-COLLATE='latin1_swedish_ci' 
-ENGINE=InnoDB 
-AUTO_INCREMENT=3 
-; 
  
-</code>\\