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
<mscgen>
msc {
width1. "800";
FileSystem label"File System", textcolouh1. "maroon", arctextcolour"maroon",
JobScheduler [labeh1. "JobScheduler", textcolour"navy", arctextcolouh1. "navy"], Order [label"FileOrder", textcolouh1. "brown", arctextcolour"brown"],
JobChain labeh1. "JobChain", textcolour"orange", arctextcolouh1. "orange";
JobScheduler> FileSystem [labelh1. "(1) start file watching"]; FileSystem .. JobChain [label "waiting for files "];
FileSystemh1. > JobScheduler label "(2) file arrived";
JobSchedulerh1. > Order [label "(3) start order processing"]; Orderh1. > JobChain [label "(4) start node"]; JobChainh1. > JobChain [label "(5) start next node(s)"]; JobChainh1. > Order [label "(6) end jobChain"]; Orderh1. > JobScheduler [label "(7) process file sink"]; JobSchedulerh1. > FileSystem [label "(8) delete/move file"]; FileSystem .. JobChain [label = "repeat waiting for files "];
}
</mscgen>
Using JITL Job JobSchedulerExistsFile
See also Documentation
the job chain "job_chain_file_order_source_poll" uses the job JobSchedulerExistsFile to check, wether a file is in c:\temp\input ending with .pdf. If so, for each file found, an order will be created for the job chain job_chain_file_order_source. The file be erased by the sinks in the executed job chain.
- The created order have the same parameters as the polling order
- The first step in the executed job chain checks, wether the file is completly written.
Please note, that you can mix file order source and JobSchedulerExistsFile by using JobSchedulerExistsFile in the first node to check, whether the file is completly written.