本文整理汇总了Java中org.apache.curator.framework.recipes.nodes.PersistentEphemeralNode类的典型用法代码示例。如果您正苦于以下问题:Java PersistentEphemeralNode类的具体用法?Java PersistentEphemeralNode怎么用?Java PersistentEphemeralNode使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
PersistentEphemeralNode类属于org.apache.curator.framework.recipes.nodes包,在下文中一共展示了PersistentEphemeralNode类的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。
示例1: startAndWait
import org.apache.curator.framework.recipes.nodes.PersistentEphemeralNode; //导入依赖的package包/类
/**
* Starts the ephemeral node and waits for it to be created
*
* @param node Node to start
* @param maxWaitSec Maximum time in seconds to wait
*/
public static void startAndWait(PersistentEphemeralNode node, int maxWaitSec) {
node.start();
int waitTime = 0;
try {
while (node.waitForInitialCreate(1, TimeUnit.SECONDS) == false) {
waitTime += 1;
log.info("Waited " + waitTime + " sec for ephemeral node to be created");
if (waitTime > maxWaitSec) {
throw new IllegalStateException("Failed to create ephemeral node");
}
}
} catch (InterruptedException e) {
throw new IllegalStateException(e);
}
}
开发者ID:apache,项目名称:fluo,代码行数:22,代码来源:CuratorUtil.java
示例2: createNode
import org.apache.curator.framework.recipes.nodes.PersistentEphemeralNode; //导入依赖的package包/类
@Override
public PersistentEphemeralNode createNode(String type, String data)
{
PersistentEphemeralNode node = new PersistentEphemeralNode(getCurator(), Mode.EPHEMERAL, getNodePath(type),
data.getBytes());
node.start();
return node;
}
开发者ID:equella,项目名称:Equella,代码行数:9,代码来源:ZookeeperServiceImpl.java
示例3: buildNodeCache
import org.apache.curator.framework.recipes.nodes.PersistentEphemeralNode; //导入依赖的package包/类
private Observable<NodeCache> buildNodeCache(final ConfigDescriptor desc)
{
return Observable.fromCallable(() -> {
final String configPath = makePath(ROOT_ZK_PATH, desc.getConfigName());
final NodeCache nc = new NodeCache(curator, configPath);
nc.getListenable().addListener(() -> onNodeChanged(nc, desc));
try {
nc.start(true);
// Note that we have to force calling onNodeChanged() here since `nc.start(true)` will not emit an initial event.
onNodeChanged(nc, desc);
// Create the ephemeral node last, just in case something goes wrong with setting up the node cache
// NOTE: This process is what actually creates the configuration node if it was missing.
PersistentEphemeralNode en = new PersistentEphemeralNode(curator, EPHEMERAL, makePath(configPath, localNodeName), new byte[0]);
en.start();
if (!en.waitForInitialCreate(getDefaultNodeCreationTimeout().toMillis(), TimeUnit.MILLISECONDS)) {
throw new TimeoutException("Timeout on creation of ephemeral node for " + makePath(configPath, localNodeName));
}
ephemeralNodes.put(desc, en);
return nc;
}
catch (Exception ex) {
log.warn("Failed to initialize for configPath {}", configPath, ex);
throw ex;
}
});
}
开发者ID:kikinteractive,项目名称:ice,代码行数:30,代码来源:ZooKeeperDynamicConfigSource.java
示例4: TransactorNode
import org.apache.curator.framework.recipes.nodes.PersistentEphemeralNode; //导入依赖的package包/类
/**
* Creates a transactor node using given transactor id
*
* @param env Environment
* @param tid Transactor ID used to create node
*/
public TransactorNode(Environment env, TransactorID tid) {
this.env = env;
this.tid = tid;
node = new PersistentEphemeralNode(env.getSharedResources().getCurator(), Mode.EPHEMERAL,
getNodePath(), tid.toString().getBytes());
CuratorUtil.startAndWait(node, 10);
status = TrStatus.OPEN;
}
开发者ID:apache,项目名称:fluo,代码行数:15,代码来源:TransactorNode.java
示例5: PartitionManager
import org.apache.curator.framework.recipes.nodes.PersistentEphemeralNode; //导入依赖的package包/类
PartitionManager(Environment env, long minSleepTime, long maxSleepTime) {
try {
this.curator = env.getSharedResources().getCurator();
this.env = env;
this.minSleepTime = minSleepTime;
this.maxSleepTime = maxSleepTime;
this.retrySleepTime = minSleepTime;
groupSize = env.getConfiguration().getInt(FluoConfigurationImpl.WORKER_PARTITION_GROUP_SIZE,
FluoConfigurationImpl.WORKER_PARTITION_GROUP_SIZE_DEFAULT);
myESNode = new PersistentEphemeralNode(curator, Mode.EPHEMERAL_SEQUENTIAL,
ZookeeperPath.FINDERS + "/" + ZK_FINDER_PREFIX, ("" + groupSize).getBytes(UTF_8));
myESNode.start();
myESNode.waitForInitialCreate(1, TimeUnit.MINUTES);
childrenCache = new PathChildrenCache(curator, ZookeeperPath.FINDERS, true);
childrenCache.getListenable().addListener(new FindersListener());
childrenCache.start(StartMode.BUILD_INITIAL_CACHE);
schedExecutor = Executors.newScheduledThreadPool(1,
new FluoThreadFactory("Fluo worker partition manager"));
schedExecutor.scheduleWithFixedDelay(new CheckTabletsTask(), 0, maxSleepTime,
TimeUnit.MILLISECONDS);
scheduleUpdate();
} catch (Exception e) {
throw new RuntimeException(e);
}
}
开发者ID:apache,项目名称:fluo,代码行数:32,代码来源:PartitionManager.java
示例6: createNode
import org.apache.curator.framework.recipes.nodes.PersistentEphemeralNode; //导入依赖的package包/类
PersistentEphemeralNode createNode(String type, String data);
开发者ID:equella,项目名称:Equella,代码行数:2,代码来源:ZookeeperService.java
注:本文中的org.apache.curator.framework.recipes.nodes.PersistentEphemeralNode类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论