У меня есть сервлет, который имеет ExecutorService, который делает HTTP-запросы нескольким адресатам. Я не уверен, как я завершаю ExecutorService. У меня нет метода destroy()
в Resteasy?Как отключить ExecutorService в Resteasy
@Path("ops")
public class Dashboard{
ExecutorService threadExecutor = Executors.newCachedThreadPool();
@GET
@Path("data")
@Produces("application/json")
public Response getDataFromDCs(){
try{
threadExecutor.invokeAll(jobWorkers, 6000, TimeUnit.SECONDS);
}catch(Exception e){}
finally{
//should call threadExecutor.shutdown() here?
}
}
}
Вы уверены, что отключение() нет? Вы используете https://docs.jboss.org/resteasy/docs/2.2.1.GA/javadocs/org/jboss/resteasy/plugins/server/servlet/HttpServletDispatcher.html? У этого класса есть destroy(), и вы можете вызвать threadExecutor.shutdown() –
Я использую стиль Resteasy Singleton для обертки моих конечных точек. HttpServletDispatcher определяется в web.xml: <имя сервлета> Resteasy <сервлет имя-/> <сервлет-класс> org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher сервлет-класс > javax.ws.rs.Application com.company.WSApplication PARAM-значение> –
MoneerOmar