我已经实施了长期轮询实施。发生什么情况是,当请求到达时,我检查是否有一些数据可用,如果没有睡眠线程并递归调用方法直到数据可用。长轮询实施
int time = 0;
String data;
public void checkme() {
time++;
if (data == null && time < 100) {
System.out.println("recursive call "+time);
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
checkme();
} else {
System.out.println("end recursive call. data available");
}
}
但即使当我取消邮递员的请求,仍然递归调用发生在后台。
所以我认为我的长轮询实现是错误的,我可能需要跟踪请求也从服务稍后或使用队列像数据结构。
这不是递归的目的。只需使用一个循环。 – Blorgbeard
谢谢。但我的问题仍然存在。任何建议更好的长期民意调查实施? – Harshana
@Blorgbeard循环的优点是什么,而不是递归?在这里应用递归有什么问题? – Harshana