Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

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>

...