当前位置: 首页 > 知识库问答 >
问题:

间隔后从restendpointurl发送不同的响应

爱海
2023-03-14

有一个应用程序用于在特定时间间隔后继续轮询某个restendpointURL以获取状态。rest API正在等待完成一些操作。直到time操作没有完成并且应用程序将到达endpoint,这个rest API将状态作为状态发送,响应为“in progress”。一旦操作完成,rest API将success作为状态作为响应。

我有挑战来模拟这个rest API,因为我不想访问实际rest API进行测试。

当应用程序通过到达endpoint进行轮询时,是否有任何方法可以从模拟rest API发送不同的响应?

我正在使用vertx与Java进行此操作。

共有1个答案

夏侯博
2023-03-14

这与Vert.x没有特别的关系,但仍然。

这里的诀窍不是计算间隔,而是计算这个模拟端点被命中的次数。

下面是一段代码来演示它应该如何工作:

private static final Vertx vertx = Vertx.vertx();
private static final HttpClient client = vertx.createHttpClient(
        new HttpClientOptions()
                .setDefaultHost("localhost")
                .setDefaultPort(8443));
public static void main(final String[] args) {
    AtomicInteger hitCounter = new AtomicInteger(0);
    vertx.createHttpServer().requestHandler((c) -> {
        if (hitCounter.incrementAndGet() >= 5) {
            c.response().setStatusCode(200).end();
        }
        else {
            c.response().setStatusCode(202).end();
        }
    }).listen(8443);

    System.out.println("Server started");

    callServerUntilSuccess();
}

public static void callServerUntilSuccess() {
    client.request(HttpMethod.GET, "/", (r) -> {
        if (r.statusCode() == 200) {
            System.out.println("I'm done");
        }
        else {
            System.out.println("I'll try again");
            vertx.setTimer(1000, (l) -> callServerUntilSuccess());
        }
    }).end();
}
 类似资料:
  • 我一直在尝试使用Discord为Discord创建一个机器人。但是,当我运行程序时,它没有按预期发送消息。这是一个简单的机器人,假设每10分钟向一个频道发送一条消息。我在命令行中没有收到任何错误消息,似乎看不到任何明显的错误?任何帮助都将不胜感激。

  • 问题内容: 我遇到的情况是我有一个巨大的表,其中包含大量的行,看起来像(例如): 好的,规则如下:时间戳可以相隔n秒,可以是5秒,30秒,60秒等,它取决于记录的年代(进行归档)。 我希望能够查询该表以基于时间戳选择第n行。 因此,例如: 从mytable中选择*,其中intervalBetweenTheRows = 30s (出于这个问题的目的,基于假设,所请求的间隔始终比数据库中的间隔具有更高

  • 我重写了类A的容器请求过滤器和类B的容器响应过滤器。 现在,每当有rest调用时,类a首先得到请求,然后它转到另一个类C。 流程是,请求到达类A,然后到达类C,最后到达类B。 现在当我看到有些东西不好,我需要发送响应时,我怎么能从A类做到这一点。我需要绕过C类。

  • 我正在使用一个服务通过套接字将自己连接到一个服务器。我想要实现的是:我需要不断地检查手机是否连接到互联网上,如果是的话,就建立了与服务器的连接,并且可以进行查询。如果不是,插座就会关闭。我的问题就在这里:我的一些查询应该只做一次,其他的每两秒钟做一次,最后一次应该每X分钟做一次。 应该只调用一次的查询不是问题,但是我不知道如何处理另外两个。到目前为止,我在服务的onStartCommand中调用一

  • 问题内容: 我有一个JTextArea在我的主应用程序窗口中始终可见(如果需要,则为Log),并且我想使用它来显示系统中正在进行的活动(如您将对System.out.println( )(如果有条件或其他条件) 我指的是用户所做的高级操作(例如“成功加载文件”或“写入磁盘”,“完成”等) 这样的消息可以在我的系统中的任何地方生成,主要是在另一个包中,这些包的类处理数据和计算,并且它们不知道GUI。

  • 我偶然发现了这个不错的教程https://github.com/manashmndl/DeadSimpleSpeechRecognizer其中数据是基于由文件夹分隔的样本进行训练的,所有mfcc都是一次计算的。 我正试图以不同的方式实现类似的目标。 基于此:https://librosa.github.io/librosa/generated/librosa.feature.mfcc.html l