Over a million developers have joined DZone.

Introducing Spring Cloud Task

We are pleased to introduce a new project in the Spring portfolio, Spring Cloud Task. With this blog post, we are releasing our first milestone of the project and are eager for your input and feedback.

· Cloud Zone

Download the Essential Cloud Buyer’s Guide to learn important factors to consider before selecting a provider as well as buying criteria to help you make the best decision for your infrastructure needs, brought to you in partnership with Internap.

We are pleased to introduce a new project in the Spring portfolio, Spring Cloud Task. Under the umbrella of the Spring Cloud grouping of projects and the sister project of Spring Cloud Streams, Spring Cloud Task aims to bring functionality required to support short lived microservices to Spring Boot based applications. With this blog post, we are releasing our first milestone of the project and are eager for your input and feedback.

The Goals of Spring Cloud Task

In most cases, the modern cloud environment is designed around the execution of processes that are not expected to end (think web applications or stream modules). If they do, it's considered a failure by the platform and they are typically restarted. While many platforms do have some method to execute a process that is expected to end (a batch job for example), the results of that execution are typically not maintained in a consumable way. Yet, for mission critical applications, even though they are short lived, they still have the same non-functional requirements long lived processes have.

While this functionality is useful in a cloud environment, the same issues can arise in a traditional deployment model as well. When executing Spring Boot applications via a scheduler like cron, it can be useful to be able to monitor the results of the application after it’s completion.

A Spring Cloud Task takes the approach that a Spring Boot application can have a start and an end while still being production grade. Batch applications are just one example of where short lived processes can be helpful.

Getting Started

In this first release of Spring Cloud Task, we introduce the basics of the configuration mechanisms as well as a repository to record what happens when a task is executed. Those who are familiar with Spring Batch and its job repository should find the general paradigms of Spring Cloud Task familiar.

To get familiar with Spring Cloud Task, the easiest way is to write an application. The documentation walks you through the creation of an initial task and its execution. You can read more about that here.

Where We're Going

Tasks will be a new primitive within Spring Cloud Data Flow in the coming releases allowing users to execute virtually any Spring Boot application as a short lived task. This provides the flexibility to run everything from a simple CommandLineRunner to a full batch job in a dynamic way, allowing resources to be consumed on demand and returned once complete. The upcoming releases, including Spring Cloud Task 1.0 GA which we plan for just before Spring Cloud Data Flow goes 1.0 GA, will be adding features to support that effort.

Tell Us What You Think!

Spring Cloud Task is a new and exciting project that we feel fills an underserved area of enterprise development. However, we want to know what you think. Please let us know via the issues in Github Issues, StackOverflow, or directly on Twitter!

The Cloud Zone is brought to you in partnership with Internap. Read Bare-Metal Cloud 101 to learn about bare-metal cloud and how it has emerged as a way to complement virtualized services.

Topics:
spring ,cloud

Published at DZone with permission of Pieter Humphrey, DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.

The best of DZone straight to your inbox.

SEE AN EXAMPLE
Please provide a valid email address.

Thanks for subscribing!

Awesome! Check your inbox to verify your email so you can start receiving the latest in tech news and resources.
Subscribe

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}