package com.hqyg;
import java.io.IOException;
import java.util.List;
import org.apache.curator.framework.CuratorFramework;
import org.apache.curator.framework.CuratorFrameworkFactory;
import org.apache.curator.framework.recipes.cache.ChildData;
import org.apache.curator.framework.recipes.cache.PathChildrenCache;
import org.apache.curator.framework.recipes.cache.PathChildrenCacheEvent;
import org.apache.curator.framework.recipes.cache.PathChildrenCacheListener;
import org.apache.curator.retry.ExponentialBackoffRetry;
import org.junit.Before;
import org.junit.Test;
import com.hqyg.disjob.register.repository.watch.WatchApiCuratorImpl;
public class WatchApiTest {
CuratorFramework client = null;
@Before
public void init(){
client = CuratorFrameworkFactory.builder()
.connectString("10.40.6.100:2181")
.sessionTimeoutMs(5000)
.retryPolicy(new ExponentialBackoffRetry(1000, 3))
.build();
client.start();
}
@Test
public void createPathInvokeListener() {
try{
final WatchApiCuratorImpl watcher = new WatchApiCuratorImpl();
watcher.pathChildrenWatch(client, "/grobalegrow/demo/1/server", true, new PathChildrenCacheListener(){
@Override
public void childEvent(CuratorFramework client, PathChildrenCacheEvent event) throws Exception
{
switch (event.getType()) {
case CHILD_ADDED:
System.out.println("CHILD_ADDED: " + event.getData().getPath());
break;
case CHILD_REMOVED:
System.out.println("CHILD_REMOVED: " + event.getData().getPath());
break;
case CHILD_UPDATED:
System.out.println("CHILD_UPDATED: " + event.getData().getPath());
break;
default:
break;
}
List<ChildData> list = watcher.getPathChildrenCache().getCurrentData();
for(ChildData data: list){
System.out.println("list"+data.getPath() + ",value:"+new String(data.getData()));
}
System.out.println("==="+event.getData().getPath() + ",value:"+new String(event.getData().getData()));
}
});
client.create().forPath("/grobalegrow/demo/1/server/192.168.35:2199", "ejob://192.168.110:2189/abc.efg?className=classya&methodName=woqu&version=1&test=00".getBytes());
Thread.sleep(Integer.MAX_VALUE);
}catch(Throwable e){
e.printStackTrace();
}
}
@Test
public void treeWatchTest1() throws IOException{
String znode = "/ejob/scheduler/slave/10.37.1.214/execution";
final WatchApiCuratorImpl watcher = new WatchApiCuratorImpl();
watcher.pathChildrenWatch(client, znode, true, new PathChildrenCacheListener(){
@Override
public void childEvent(CuratorFramework client, PathChildrenCacheEvent event) throws Exception
{
switch (event.getType()) {
case CHILD_ADDED:
System.out.println("CHILD_ADDED: " + event.getData().getPath() + " data: " + new String( event.getData().getData() ));
break;
case CHILD_REMOVED:
System.out.println("CHILD_REMOVED: " + event.getData().getPath());
break;
case CHILD_UPDATED:
System.out.println("CHILD_UPDATED: " + event.getData().getPath() + " data: " + new String( event.getData().getData() ));
break;
default:
break;
}
}
});
PathChildrenCache cache = watcher.getPathChildrenCache();
try {
String groupPath = znode + "/omsTest";
//client.delete().deletingChildrenIfNeeded().forPath(groupPath);
//client.create().creatingParentsIfNeeded().forPath(groupPath);
client.setData().forPath(groupPath, "jobTest1|jobTest2|jobTest3|jobTest4|test5".getBytes());
Thread.sleep(1000000);
} catch (Exception e) {
e.printStackTrace();
}finally{
cache.close();
}
}
}