I have web service method that is supposed to process a very large file and output several files to the server. However, this web service will just timeout and there will be no way for the invoker to get the CREATED status. I am just wondering whether there is a way to run the processing job (starting a new thread or something) and return the status without waiting for the process to be done.
public Response processFile(InputStream inputStream){
//I want to process the file here
//but I dont want the invoker to wait for that process to finish
//I just want the response to be returned right away
return Response.status(Response.Status.CREATED).build();
}
The file comes from the input stream, right? So if you’ll send back a CREATED status (effectually closing the connection) you might sever the connection before you receive the entirety of the input file?
That’s what i thought anyways… In which case you’ll just want to set the timeout to a lengthier value.
If that’s not the case, then i guess it would be fine to start a new thread, process everything there in good time and send back the CREATED status.