...
In the sample below there are two different approaches described how you can start jobs on a file event.
Using a file order source
See also Documentation
The job chain "job_chain_file_order_source" has a file order source watching for files in c:\temp\input with the file name extension ".txt". When a file arrives, an order for the job chain will be created. The file will be erased at the end of the job chain by the file sink node(s).
- Orders can not have additional parameters
- Order processing starts when the file is detected, not after the file is completely written
No Format |
---|
<mscgen> //file_order_source msc { width="800"; FileSystem [label="File System", textcolour="maroon", arctextcolour="maroon"], JobScheduler [label="JobScheduler", textcolour="navy", arctextcolour="navy"], Order [label="FileOrder", textcolour="brown", arctextcolour="brown"], JobChain [label="JobChain", textcolour="orange", arctextcolour="orange"]; JobScheduler => FileSystem [ label = "(1) start file watching" ]; FileSystem .. JobChain [ label = "waiting for files " ]; FileSystem => JobScheduler [ label = "(2) file arrived" ]; JobScheduler => Order [ label = "(3) start order processing" ]; Order => JobChain [ label = "(4) start node" ]; JobChain => JobChain [ label = "(5) start next node(s)" ]; JobChain => Order [ label = "(6) end jobChain" ]; Order => JobScheduler [ label = "(7) process file sink" ]; JobScheduler => FileSystem [ label = "(8) delete/move file" ]; FileSystem .. JobChain [ label = "repeat waiting for files " ]; } </mscgen> |
Using JITL Job JobSchedulerExistsFile
See also Documentation
No Format |
---|
<mscgen> //file_order_event msc { width="900"; JobScheduler [label="JobScheduler", textcolour="navy", arctextcolour="navy"], JobChainPoll [label="JobChain Polling", textcolour="orange", arctextcolour="orange"], OrderPoll [label="Order for Pollling", textcolour="brown", arctextcolour="brown"], FileSystem [label="File System", textcolour="maroon", arctextcolour="maroon"], JobChainProcessing [label="JobChain Processing", textcolour="orange", arctextcolour="orange"], OrderProcessing [label="Order for Processing", textcolour="brown", arctextcolour="brown"]; JobScheduler => JobChainPoll [ label = "(1) start order for file watching" ]; JobScheduler .. FileSystem [ label = "waiting for files " ]; OrderPoll => FileSystem [ label = "(2) polling" ]; FileSystem => OrderPoll [ label = "(3) file arrived" ]; OrderPoll => JobChainProcessing [ label = "(4) create order for processing" ]; OrderProcessing => OrderProcessing [ label = "(5) check for ready state" ]; OrderProcessing => JobChainProcessing [ label = "(6) start node" ]; OrderProcessing => JobChainProcessing [ label = "(7) start next node(s)" ]; OrderProcessing => JobChainProcessing [ label = "(8) end jobChain" ]; OrderProcessing => JobChainProcessing [ label = "(9) process file sink" ]; JobChainProcessing => FileSystem [ label = "(10) delete/move file" ]; JobScheduler .. FileSystem [ label = "repeat waiting for files " ]; OrderPoll => FileSystem [ label = "(11) polling" ]; } </mscgen> |
...