Я реализую реализацию большого количества опросов. Что происходит, когда приходит запрос, я проверяю, доступны ли какие-либо данные, и если не спящий поток и рекурсивно вызывается методом до тех пор, пока данные не будут доступны.Реализация длинного опроса
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");
}
}
Но даже когда я отменяю запрос в почтальоне, рекурсивный вызов происходит в фоновом режиме.
Таким образом, я думаю, что моя длинная реализация опроса неверна и мне может понадобиться отслеживать запрос также из службы позже или использовать структуру данных, похожую на Queue.
Это не то, для чего предназначена рекурсия. Просто используйте цикл. – Blorgbeard
спасибо. но все равно моя проблема будет там. Любое предложение для более эффективного проведения длительного опроса, пожалуйста? – Harshana
@Blorgbeard в чем преимущество цикла вместо рекурсии? и что не так с применением рекурсии здесь? – Harshana