Java, Spring, Spring Boot

How to use CompletableFuture Class after reading from a queue and save it into database or write to a file ?

Let’s say you have a need to read from a very high volume queue and there is a need of having that volume at low. Also after reading these payload there is a need to save it to data source or write to a file. Well using CompletableFuture’s asynchronous process we could read and then write at the same time.

@JmsListener(containerFactory = "mqContainer", destination = "${your-destination-name-to-read-from}")
public void processMessage(Message<?> somePayload) throws IOException

String message =somePayload.getPayload();

//Saving payload in linkedlist
List<String> readPayload = new LinkedList<>();

//Read payload of some objectType

//Using an asynchronous way of reading and writing to a file or db
CompletableFuture.supplyAsync(() -> {

    List<String> yourObjectList = new LinkedList<>(

    for (YourObject yo : yourObjectList)
        catch (Exception e)
 //Based on your need you can catch then throw , or log.
    return null;


Let us know if this works below.

Leave a Reply