Пожалуйста, найдите ниже мое требование.
Требование: Опрос веб-службы.Два важных параметра опроса max_timeout, polling_interval настраиваются в файле свойств.Общая цель - потратить некоторое время на получение ответа.Если мы получим ответ с помощью max_timeout, мы можем вернуть ответ клиенту.В противном случае мы выдадим ошибку о том, что операция не удалась.
Ниже приведен фрагмент кода, который я написал.
int maxTimeOut = 10;
int interval = 2;
int iterations = maxTimeOut/interval;
boolean success = false;
for (int i = 0; i < iterations; i++)
{
System.out.println("Number of iteration = " + i);
try
{
Thread.sleep(interval * 1000);
System.out.println("Waited for " + interval + " seconds");
success = getWSResponse(i);
System.out.println("CALL" + ((success) ? "SUCCESSFUL" : "FAIL"));
if(success) break;
}catch (InterruptedException ie)
{
System.out.println(ie.getMessage());
}
}
//Send the success flag to client
Не могли бы вы исправить меня, если это правильная реализация опроса.Я немного обеспокоен тем, что этот код предполагает, что вызов webservice возвращается в кратчайшие сроки.Если это займет 2-3 секунды (обычно это так), то мы потратим больше, чем max_timeout в целом на один только опрос.Как мы могли это исправить.Есть ли лучший подход, чем этот.