2. What is Spring Cloud Task?
Spring Cloud Task is a microservice framework for creating short-lived, one-time tasks in a Spring Cloud environment. Unlike long-running services, tasks start, run, and finish. Typical use cases:
- Batch jobs
- Data migration scripts
- Event-driven tasks triggered by an event or schedule
Key points:
- Each task is short-lived
- Can be monitored and tracked via Spring Cloud Data Flow
- Supports parameterized execution
3. Simple Example: Spring Boot + Spring Cloud Task
We’ll create a simple task that prints a message and exits.
Step 1: Add dependencies
pom.xml
:
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-task</artifactId>
<version>2.5.0</version>
</dependency>
</dependencies>
Spring Cloud Task 2.x is compatible with Spring Boot 2.x. Adjust versions as needed.
Step 2: Create the main application class
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.task.configuration.EnableTask;
import org.springframework.boot.CommandLineRunner;
import org.springframework.context.annotation.Bean;
@SpringBootApplication
@EnableTask
public class MyTaskApplication {
public static void main(String[] args) {
SpringApplication.run(MyTaskApplication.class, args);
}
@Bean
public CommandLineRunner commandLineRunner() {
return args -> {
System.out.println("Hello! Spring Cloud Task is running.");
if (args.length > 0) {
System.out.println("Task parameters:");
for (String arg : args) {
System.out.println(arg);
}
}
};
}
}
Explanation:
@EnableTask
– Enables Spring Cloud Task functionality.CommandLineRunner
– Executes code once the application starts.- You can access task parameters via
args
.
Step 3: Configure application properties
src/main/resources/application.properties
:
spring.application.name=my-task
spring.cloud.task.name=my-task
Optional: Add logging level or database if you want task history.
Step 4: Run the task
Use:
mvn spring-boot:run -Dspring-boot.run.arguments="param1 param2"
Output:
Hello! Spring Cloud Task is running.
Task parameters:
param1
param2
After finishing, the task exits automatically.
Optional: Add Task Repository (for tracking)
Spring Cloud Task can persist task executions in a database:
spring.datasource.url=jdbc:h2:mem:testdb
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=
spring.jpa.hibernate.ddl-auto=update
This will let you track task execution history in H2 or any other database.
✅ Summary:
- Spring Boot: Builds your application quickly.
- Spring Cloud Task: Adds short-lived task functionality.
- Example: Task prints a message and exits.
- Optional: Track tasks via database.