powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Zookeeper Events
1 сообщений из 1, страница 1 из 1
Zookeeper Events
    #38203974
Фотография buldozer01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Коллеги помогите разобраться с проблемой
Код следующий:

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
package com.zk;

import org.junit.Before;
import org.junit.Test;

import com.netflix.curator.utils.ZKPaths;
import com.netflix.curator.framework.CuratorFramework;
import com.netflix.curator.framework.CuratorFrameworkFactory;
import com.netflix.curator.framework.recipes.cache.PathChildrenCache;
import com.netflix.curator.framework.recipes.cache.PathChildrenCacheEvent;
import com.netflix.curator.framework.recipes.cache.PathChildrenCacheListener;
import com.netflix.curator.retry.RetryNTimes;

import java.util.LinkedList;
import java.util.concurrent.atomic.AtomicInteger;

import static org.junit.Assert.assertEquals;

public class ZookeeperEventsTest {
    private LinkedList<Integer> data;

    @Before
    public void setUp() {

    }

    @Test
    public void testZookeeperEvents() throws Exception {
        CuratorFramework client = CuratorFrameworkFactory.newClient("server:2181", new RetryNTimes(10, 1000));
        client.start();

        String znode = "/clust1/cluster/installedNodes";

        ZKPaths.mkdirs(client.getZookeeperClient().getZooKeeper(), znode, true);

        PathChildrenCache cache = new PathChildrenCache(client, znode, true);
        cache.start(true);

        final AtomicInteger i = new AtomicInteger(0);

        cache.getListenable().addListener(new PathChildrenCacheListener() {
            @Override
            public void childEvent(CuratorFramework client, PathChildrenCacheEvent event) throws Exception {
                if (event != null) {
                    System.out.println("event=" + event.getType());
                    i.incrementAndGet();
                }
            }
        });

        for (int j = 0; j < 25; j++) {
            client.create().forPath(znode + "/clust1", "data".getBytes());
            client.setData().forPath(znode + "/clust1", "data1".getBytes());
            client.setData().forPath(znode + "/clust1", "data2".getBytes());
            client.delete().forPath(znode + "/clust1");
        }

        Thread.sleep(10000);

        assertEquals(100, i.get());
    }
}



Почему счетчик в конце не равен 100.
В среднем он равен 67.

И как сделать чтоб каждый эвент ловился и обрабатывался ?

Спасибо.
...
Рейтинг: 0 / 0
1 сообщений из 1, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Zookeeper Events
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]