public void performBackgroundOperation(OperationAndData <String> operationAndData)
 {
     try
     {
         TimeTrace trace    = client.getZookeeperClient().startTracer("GetChildrenBuilderImpl-Background");
         var       callback = new AsyncCallback.Children2Callback()
         {
示例#2
0
 internal void queueOperation <DATA_TYPE>(OperationAndData <DATA_TYPE> operationAndData)
 {
     if (getState() == CuratorFrameworkState.STARTED)
     {
         backgroundOperations.offer(operationAndData);
     }
 }
示例#3
0
        internal void processBackgroundOperation <DATA_TYPE>(OperationAndData <DATA_TYPE> operationAndData,
                                                             ICuratorEvent @event)
        {
            bool isInitialExecution = (@event == null);

            if (isInitialExecution)
            {
                performBackgroundOperation(operationAndData);
                return;
            }

            bool doQueueOperation = false;

            do
            {
                if (RetryLoop.shouldRetry(@event.getResultCode()))
                {
                    doQueueOperation = checkBackgroundRetry(operationAndData, @event);
                    break;
                }

                if (operationAndData.getCallback() != null)
                {
                    sendToBackgroundCallback(operationAndData, @event);
                    break;
                }

                processEvent(@event);
            }while (false);

            if (doQueueOperation)
            {
                queueOperation(operationAndData);
            }
        }
示例#4
0
        public void performBackgroundOperation(OperationAndData <PathAndBytes> operationAndData)
        {
            try
            {
                TimeTrace   trace   = client.getZookeeperClient().startTracer("SetDataBuilderImpl-Background");
                object      taskCtx = backgrounding.getContext();
                Task <Stat> task    = client.getZooKeeper().setDataAsync
                                      (
                    operationAndData.getData().getPath(),
                    operationAndData.getData().getData(),
                    version //,
//                     new AsyncCallback.StatCallback()
//                     {
//                         public void processResult(int rc, String path, Object ctx, Stat stat)
//                         {
//                             trace.commit();
//                             ICuratorEvent @event = new CuratorEventImpl(client, CuratorEventType.SET_DATA, rc, path, null, ctx, stat, null, null, null, null);
//                             client.processBackgroundOperation(operationAndData, @event);
//                         };
//                    },
//                    backgrounding.getContext()
                                      );
                task.ContinueWith(statTask =>
                {
                    trace.commit();
                    int errorCode = 0;
                    if (statTask.IsFaulted)
                    {
                        if (!(statTask.Exception.InnerException is KeeperException))
                        {
                            throw new Exception($"{nameof(SetDataBuilderImpl)}." +
                                                $"{nameof(performBackgroundOperation)} operation failed " +
                                                $"with unexpected exception of type " +
                                                $"{statTask.Exception.InnerException.GetType().FullName}." +
                                                $"Expected type {nameof(KeeperException)}");
                        }
                        KeeperException keeperException
                                  = (KeeperException)statTask.Exception.InnerException;
                        errorCode = (int)keeperException.getCode();
                    }
                    ICuratorEvent @event = new CuratorEventImpl(client,
                                                                CuratorEventType.SET_DATA,
                                                                errorCode,
                                                                operationAndData.getData().getPath(),
                                                                null,
                                                                taskCtx,
                                                                statTask.Result,
                                                                null,
                                                                null,
                                                                null,
                                                                null);
                    client.processBackgroundOperation(operationAndData, @event);
                });
            }
            catch (Exception e)
            {
                backgrounding.checkError(e);
            }
        }
示例#5
0
 public void performBackgroundOperation(OperationAndData <String> operationAndData)
 {
     try
     {
         TimeTrace trace = client.getZookeeperClient().startTracer("GetDataBuilderImpl-Background");
         AsyncCallback.DataCallback callback = new AsyncCallback.DataCallback()
         {
             @Override
        public void performBackgroundOperation(OperationAndData <String> operationAndData)
        {
            TimeTrace trace = client.getZookeeperClient().startTracer("BackgroundSyncImpl");

            client.getZooKeeper().sync
            (
                operationAndData.getData(),
                new AsyncCallback.VoidCallback()
            {
                @Override
示例#7
0
        public void performBackgroundOperation(OperationAndData <String> operationAndData)
        {
            try
            {
                TimeTrace trace        = client.getZookeeperClient().startTracer("SyncBuilderImpl-Background");
                String    path         = operationAndData.getData();
                String    adjustedPath = client.fixForNamespace(path);

                AsyncCallback.VoidCallback voidCallback = new AsyncCallback.VoidCallback()
                {
示例#8
0
 public void performBackgroundOperation(OperationAndData <String> operationAndData)
 {
     try
     {
         TimeTrace trace = client.getZookeeperClient().startTracer("DeleteBuilderImpl-Background");
         client.getZooKeeper().delete
         (
             operationAndData.getData(),
             version,
             new AsyncCallback.VoidCallback()
         {
             @Override
 public void performBackgroundOperation(OperationAndData <String> operationAndData)
 {
     try
     {
         TimeTrace trace = client.getZookeeperClient().startTracer("SetACLBuilderImpl-Background");
         String    path  = operationAndData.getData();
         client.getZooKeeper().setACL
         (
             path,
             acling.getAclList(path),
             version,
             new AsyncCallback.StatCallback()
         {
示例#10
0
 public void performBackgroundOperation(OperationAndData <PathAndBytes> operationAndData)
 {
     try
     {
         TimeTrace trace = client.getZookeeperClient().startTracer("CreateBuilderImpl-Background");
         client.getZooKeeper().create
         (
             operationAndData.getData().getPath(),
             operationAndData.getData().getData(),
             acling.getAclList(operationAndData.getData().getPath()),
             createMode,
             new AsyncCallback.StringCallback()
         {
             @Override
示例#11
0
 internal void processBackgroundOperation <DATA_TYPE>(OperationAndData <DATA_TYPE> operationAndData, ICuratorEvent @event)
 {
     client.processBackgroundOperation(operationAndData, @event);
 }
示例#12
0
 public void retriesExhausted(OperationAndData <Void> operationAndData)
 {
     operationAndData.reset();
     client.processBackgroundOperation(operationAndData, null);
 }
示例#13
0
 internal void execute()
 {
     var errorCallback = new OperationAndData.ErrorCallback <object>()
     {
         @Override