【问题标题】:How to get an event from testServer using curator?如何使用策展人从 testServer 获取事件?
【发布时间】:2019-10-10 14:14:12
【问题描述】:

我已经编写了关于我的服务的测试代码。 我的代码如下所示。

        Object obj = new Object();
        service.add(obj); // zookeeper node created in service.add

        Thread.sleep(7000); // wait until it is created

        Boolean created = OtherService.pick(a2, a2); // use node date in OtherService

        assertThat(created).isTrue();

在这种情况下,我不想使用 Thread.sleep。 有什么方法可以从 TestingServer 获取事件或回调来测试是否创建了节点?不使用 thread.sleep ??

【问题讨论】:

    标签: spring-boot apache-zookeeper apache-curator


    【解决方案1】:

    我使用了latch来与zookeeper的节点创建同步。

            TreeCacheListener listener = (curator, event) -> {
                switch (event.getType()) {
                    case NODE_ADDED:
                        createdLatch.countDown();
                    }
                };
            cache.getListenable().addListener(listener);
    
            Object obj = new Object();
            service.add(obj); // node creation by zookeeper
    
            // Wait until Node is created
            timing.awaitLatch(createdLatch);
    
            Boolean created = OtherService.pick(a2, a2); // use node date in OtherService
    
            assertThat(created).isTrue();
    
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-12-15
      • 1970-01-01
      • 2021-05-14
      • 2018-04-14
      • 1970-01-01
      • 2016-07-06
      • 1970-01-01
      相关资源
      最近更新 更多