Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Threading in Servlets

I am working on a servlet that can take a few hours to complete the request. However, the client calling the servlet is only interested in knowing whether the request has been received by the servlet or not. The client doesn't want to wait hours before it gets any kind of response from the servlet. Also since calling the servlet is a blocking call, the client cannot proceed until it receives the response from the servlet. To avoid this, I am thinking of actually launching a new thread in the servlet code. The thread launched by the servlet will do the time consuming processing allowing the servlet to return a response to the client very quickly. But I am not sure if this an acceptable way of working around the blocking nature of servlet calls. I have looked into NIO but it seems like it is not something that is guaranteed to work in any servlet container as the servlet container has be NIO based also.

like image 690
user305210 Avatar asked Dec 27 '25 16:12

user305210


1 Answers

What you need is a job scheduler because they give assurance that a job will be finished, even in case a server is restarted.

Take a look at java OSS job schedulers, most notably Quartz.

like image 162
Peter Knego Avatar answered Dec 30 '25 05:12

Peter Knego



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!