4
votes

I went through the Introducing Spring Cloud Task, but things are not clear for the following questions.

I'm using Spring Batch

  1. What's the use of Spring Cloud Task when we already have the metadata provided by Spring Batch ?

  2. We're planning to use Spring Cloud Data Flow to monitor the Spring Batch. All the batch jobs can be imported into the SCDF as task and can be scheduled there, but don't see support for MongoDB. Hope MySQL works well.

What is the difference between Spring Cloud Task and Spring Batch?

1
but don't see support for MongoDB: do you mean using mongo db as a job/task repository? - Mahmoud Ben Hassine
I dont see MongoDB supports Spring Cloud Related Metadata tables - Jeff Cook
If you mean that Spring Cloud Task/Batch do not store their metadata in Mongo, that is correct. They store this information in most relational databases. - Glenn Renfro
hey, is there any way to create SCDF on Postgres and execute Batch Job as a Task to load data into MongoDB ? - Jeff Cook
Yes, you can configure the job repository of Spring Batch to be based on Postgres (for technical meta-data) and point your item reader/writer to mongodb for reading/writing (business) data. - Mahmoud Ben Hassine

1 Answers

7
votes

Spring Cloud Task has a broader scope than Spring Batch. It is designed for any short lived task, including but not limited to (Spring) Batch jobs. A short lived task could be a Java process, a shell script, a Docker container, etc. Spring Cloud Task has its own meta-data tables to track the progress/status/stats of tasks.

In the context of Spring Batch, Spring Cloud Task provides a number of additional features:

  • Batch informational messages: ability to emit messages based on Spring Batch listeners events. Those messages can be consumed by streaming apps and make it possible to bridge tasks and streaming apps.
  • DeployerPartitionHandler: an additional partition handler that is suitable to cloud environments to dynamically deploy workers in a remote partitioning setup.