You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 12 Next »

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>
//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

 <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>

 

 

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.

configuration files

  • No labels