Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Zookeeper Events / 1 сообщений из 1, страница 1 из 1
29.03.2013, 12:33:47
    #38203974
buldozer01
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Zookeeper Events
Коллеги помогите разобраться с проблемой
Код следующий:

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


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