Considering it has been years since I worked in pure Java.

My requirement is to develop a data report management web application that pulls data from 3rd party application using their APIs.
In this on a new user registration, first the user's whole history of data from the 3rd party application should be loaded. This takes approx 15 to 20 minutes.

What I am looking for is... This long process should run asynchronously without holding back the user in the same page.

What happened is.. I used Thread, but whenever a user registers the data pulling process of the previously initiated user is interrupted.

Now am checking if I can use Spring Batch for this.

If you could point me in the right direction. Thanks in advance