workflow - Different combination of Spring batch steps -


i working on project going use spring batch , spring integration creating workflow system. workflow system should able read messages queues job requests clients , depending on job requests type need call 7-8 systems.

each system reads input files location (usually centralized storage system input files stored submitted clients), process , pass next system , should able give response clients, success if processed systems , failed if system fails process file , if fails client should able restart failed job step failed.

i going add each system step in spring batch , using spring integration going model systems particular flow - e.g. ftp files, send jms/smapi request, receive jms response, ftp files back. etc.

my questions are:

  1. is correct approach?
  2. if "yes", performance tuning considerations while using spring batch , spring integration?
  3. since systems not going called in same order time, how write possible combinations using spring batch potential spring batch jobs?

question 1: using spring-integration , spring-batch idea.

question 2: spring-batch, have lot of options scale , therfore improve performance. can launch whole jobs in parallel, can execute steps in parallel, can execute chunks in parallel... basic questions are:

  1. where bottleneck
  2. where parallelisation improves performance

question 3: basically, spring-batch not workflow system. supports jobs fixed order of steps.

option 1: model each system in own job ("jobsystema", "jobsystemb"). that, implement logic of flow in "integration" layer , start new job every system in correct order.

option 2: if have fixed number of possible of flows like

flow 1: step (system a) step b (system b) step c (system c)  flow 2: step (system a) step c (system c) step b (system b) 

you define job every possible "flow" , implement call specific system jobs "stepjob" calls specific "jobsystem"-job mentioned under option 1; like

jobflow1   step1 {jobstep call jobsystema}   step2 {jobstep call jobsystemb}   step3 {jobstep call jobsystemc}  jobflow2   step1 {jobstep call jobsystema}   step2 {jobstep call jobsystemc}   step3 {jobstep call jobsystemb} 

option 3: if define jobs programmatically fluent api of springbatch, free create therefore define job @ runtime.


Comments

Popular posts from this blog

javascript - Using jquery append to add option values into a select element not working -

Android soft keyboard reverts to default keyboard on orientation change -

Rendering JButton to get the JCheckBox behavior in a JTable by using images does not update my table -