示例#1
0
        public async Task CreateTest()
        {
            var path = $"/{Guid.NewGuid():N}";

            if (await _client.ExistsAsync(path))
            {
                await _client.DeleteAsync(path);
            }

            await _client.CreateEphemeralAsync(path, Encoding.UTF8.GetBytes("abc"));

            var data = (await _client.GetDataAsync(path)).ToArray();

            await _client.DeleteAsync(path);
        }
        /// <summary>
        /// 递归删除该节点下的所有子节点和该节点本身。
        /// </summary>
        /// <param name="client">ZooKeeper客户端。</param>
        /// <param name="path">节点路径。</param>
        /// <returns>如果成功则返回true,false。</returns>
        public static async Task <bool> DeleteRecursiveAsync(this IZookeeperClient client, string path)
        {
            IEnumerable <string> children;

            try
            {
                children = await client.GetChildrenAsync(path);
            }
            catch (KeeperException.NoNodeException)
            {
                return(true);
            }

            foreach (var subPath in children)
            {
                if (!await client.DeleteRecursiveAsync(path + "/" + subPath))
                {
                    return(false);
                }
            }
            await client.DeleteAsync(path);

            return(true);
        }