ltfishie
ltfishie

Reputation: 2987

Can Spring Batch jobs be configured at run time with dynamic steps?

I am looking at Spring Batch 2.0 to implement a pipeline process. The process is listening to some event, and needs to perform a set of transformation steps base on the event type and its content.

Spring batch seem to be a great fit. However, going through the documentation, every example have them job and its steps configured in xml. Does the framework support creating jobs during run-time and configuring the steps dynamically?

Upvotes: 2

Views: 11283

Answers (2)

dma_k
dma_k

Reputation: 10639

Addon for Michael answer:

Do you want to create a flow from beginning to end completely dynamically or you want to have some dynamics at certain point?

  1. As Spring Batch instantiates jobs (will all internals) from XML configuration, that means all necessary beans have setters/getters and you can create the Job from empty page. This is long and bug-prone way (you need to create FlowJob as in JobParserJobFactoryBean goes, then SimpleFlow then StepState then TaskletStep as in SimpleStepFactoryBean and bind them together).
  2. I think the alternative to XML flows could be your coded logic. For String Batch it will look as one step, but with custom implementation and subflow. See <tasklet ref="myCleverTasklet" /> example in Example Tasklet Implementation.

Upvotes: 2

Michael Pralow
Michael Pralow

Reputation: 6630

the job configuration itself is set before the job runs, but it is possible to create a flexible job configuration with conditional flows

you can't just change the job configuration while the job runs, but between jobs its easy to replace the configuration

Upvotes: 2

Related Questions