gpt4 book ai didi

Java 实现 : polling a web service

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:44:51 25 4
gpt4 key购买 nike

请在下面找到我的要求。

要求:轮询网络服务。轮询的两个关键参数max_timeout,polling_interval在properties文件中配置。总体目标是花费总体时间来获得响应。如果我们在 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

如果这是轮询的正确实现,你能纠正我吗?我有点担心这段代码假定 web 服务调用会立即返回。如果这需要 2-3 秒(通常是这样),那么我们将花费超过 max_timeout 的总时间来单独进行 POLLING。我们怎么能解决这个问题。有没有比这更好的方法。

最佳答案

您可以结合使用 ScheduledExecutorServiceHttpURLConnection - 超时以在给定的延迟内进行轮询 - 如果需要更长的时间则中止任务。

关于Java 实现 : polling a web service,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8968211/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com