我有一个球衣服务,其中包含一个计时器任务,用于轮询特定值。我只想在从轮询中获得特定值时才返回响应。有什么办法可以实现吗?
我的代码是:
@Path("/poll")
public class PollService{
String response = null;
@GET
@Produces(javax.ws.rs.core.MediaType.TEXT_PLAIN)
public String pollResponse(@Context HttpServletRequest request){
MyTimer poller = new MyTimer();
final Timer timer = new Timer();
timer.scheduleAtFixedRate(poller, 0, 5000);
return response;
}
private class MyTimer extends TimerTask{
@Override
public void run(){
//Poll
//Change value of response upon condition
}
}
我不希望服务返回任何值,直到“response”变量的值设置为“SUCCESS”。我该怎么做才能做到这一点?
答案 0 :(得分:1)
您可采取的方法之一:
答案 1 :(得分:0)
您可以使用其调用方法返回值的Callable。请查看Interface CompletionService&类ExecutorCompletionService。