Following is the code in one of my spring controller.In this I need to store some data in postgres database with multithreading so I don't have wait until it saves data into database and I can send response back to called API.How can I achieve this?
//billingLogService.saveBillingLogDetails(Object);
if (!Util.isNull(personId) && !Util.isNull(personConnectionData)) {
return new Callable<Map<Long, PersonConnectionTo>>() {
@Override
public Map<Long, PersonConnectionTo> call() throws Exception {
Map<Long, PersonConnectionTo> connectionTextMap =
profileService.getconnectionTextForFocusCompany(focusCompanyId, personId, personConnectionData);
return connectionTextMap;
}
};
}
One of the ways to do is put the whole logic(which you want to run in a separate thread) into a method of some service class.
Then
1. Annotate class with @Service or equivalent.
2. Annotate method with @Async
3. Use @EnableAsync
That should suffice