gpt4 book ai didi

java - Mockserver:收到请求后回调

转载 作者:行者123 更新时间:2023-11-28 20:50:32 25 4
gpt4 key购买 nike

我正在使用 Mockserver 测试异步产生副作用的 HTTP 服务。比方说,我正在测试在 /api/status/{id} 公开 HTTP API 方法的 ServiceA。除了将状态结果返回给 API 的调用者之外,ServiceA 会启动一个异步分析,如果满足某些条件,它会调用 ServiceB。假设完成此异步过程需要几毫秒到几秒。

目前,我的模拟服务器代码看起来像这样:

Long waitTimeoutSeconds = 5L;
Long start = System.currentTimeMillis();
HttpRequest[] asyncRequestsRetrieved = null;

while (start + (waitTimeoutSeconds * 1000L) < System.currentTimeMillis()) {
asyncRequestsRetrieved = mockServer.retrieveRecordedRequests(HttpRequest.request().withPath("/service/b/path"));
if (asyncRequestsRetrieved != null && asyncRequestsRetrieved.size > 0) {
break;
}
Thread.sleep(50L);
}

assertNotNull(asyncRequestsRetrieved);
assertTrue(asyncRequestsRetrieved!!.size > 0);

当在给定端点收到请求时,Mockserver 是否公开一种模式来采取行动(例如,通知监听器),或者正在轮询我唯一的选择?

最佳答案

如果您以异步方式向 ServiceB 发送请求,那么您将得到一些响应,在这种情况下,轮询是唯一的选择。我假设您的 ServiceB 有 2 个端点,一个用于创建作业,另一个用于检查作业的状态,如果准备就绪,则获取结果。

关于java - Mockserver:收到请求后回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48937768/

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