public AsyncBatchExistsArrayExecutor ( AsyncCluster cluster, BatchPolicy policy, Key[] keys, ExistsArrayListener listener ) : base(cluster, policy, keys) { this.existsArray = new bool[keys.Length]; this.listener = listener; // Create commands. AsyncMultiCommand[] tasks = new AsyncMultiCommand[base.taskSize]; int count = 0; foreach (BatchNode batchNode in batchNodes) { if (batchNode.node.UseNewBatch(policy)) { // New batch tasks[count++] = new AsyncBatchExistsArrayCommand(this, cluster, batchNode, policy, keys, existsArray); } else { // Old batch only allows one namespace per call. foreach (BatchNode.BatchNamespace batchNamespace in batchNode.batchNamespaces) { tasks[count++] = new AsyncBatchExistsArrayDirect(this, cluster, (AsyncNode)batchNode.node, batchNamespace, policy, keys, existsArray); } } } // Dispatch commands to nodes. Execute(tasks, policy.maxConcurrentThreads); }
public AsyncBatchExistsArrayExecutor( AsyncCluster cluster, BatchPolicy policy, Key[] keys, ExistsArrayListener listener ) : base(cluster, policy, keys) { this.existsArray = new bool[keys.Length]; this.listener = listener; // Create commands. AsyncMultiCommand[] tasks = new AsyncMultiCommand[base.taskSize]; int count = 0; foreach (BatchNode batchNode in batchNodes) { if (batchNode.node.UseNewBatch(policy)) { // New batch tasks[count++] = new AsyncBatchExistsArrayCommand(this, cluster, batchNode, policy, keys, existsArray); } else { // Old batch only allows one namespace per call. foreach (BatchNode.BatchNamespace batchNamespace in batchNode.batchNamespaces) { tasks[count++] = new AsyncBatchExistsArrayDirect(this, cluster, (AsyncNode)batchNode.node, batchNamespace, policy, keys, existsArray); } } } // Dispatch commands to nodes. Execute(tasks, policy.maxConcurrentThreads); }
public AsyncBatchExistsArrayExecutor ( AsyncCluster cluster, BatchPolicy policy, Key[] keys, ExistsArrayListener listener ) { this.keys = keys; this.existsArray = new bool[keys.Length]; this.listener = listener; // Create commands. List <BatchNode> batchNodes = BatchNode.GenerateList(cluster, policy, keys); AsyncBatchCommand[] commands = new AsyncBatchCommand[batchNodes.Count]; int count = 0; foreach (BatchNode batchNode in batchNodes) { commands[count++] = new AsyncBatchExistsArrayCommand(this, cluster, batchNode, policy, keys, existsArray); } // Dispatch commands to nodes. Execute(commands); }
public AsyncBatchExistsArrayExecutor(AsyncCluster cluster, BatchPolicy policy, Key[] keys, ExistsArrayListener listener) : base(cluster, policy, keys) { this.existsArray = new bool[keys.Length]; this.listener = listener; // Dispatch asynchronous commands to nodes. foreach (BatchNode batchNode in batchNodes) { foreach (BatchNode.BatchNamespace batchNamespace in batchNode.batchNamespaces) { AsyncBatchExistsArray async = new AsyncBatchExistsArray(this, cluster, (AsyncNode)batchNode.node, batchNamespace, policy, keys, existsArray); async.Execute(); } } }
public AsyncBatchExistsArrayExecutor ( AsyncCluster cluster, BatchPolicy policy, Key[] keys, ExistsArrayListener listener ) : base(cluster, policy, keys, true) { this.existsArray = new bool[keys.Length]; this.listener = listener; // Create commands. AsyncMultiCommand[] tasks = new AsyncMultiCommand[base.taskSize]; int count = 0; foreach (BatchNode batchNode in batchNodes) { tasks[count++] = new AsyncBatchExistsArrayCommand(this, cluster, batchNode, policy, keys, existsArray); } // Dispatch commands to nodes. Execute(tasks, 0); }
/// <summary> /// Asynchronously check if multiple record keys exist in one batch call. /// Schedule the array exists command with a channel selector and return. /// Another thread will process the command and send the results to the listener in a single call. /// <para> /// The policy can be used to specify timeouts. /// </para> /// </summary> /// <param name="policy">generic configuration parameters, pass in null for defaults</param> /// <param name="listener">where to send results</param> /// <param name="keys">array of unique record identifiers</param> /// <exception cref="AerospikeException">if queue is full</exception> public void Exists(BatchPolicy policy, ExistsArrayListener listener, Key[] keys) { if (keys.Length == 0) { listener.OnSuccess(keys, new bool[0]); return; } if (policy == null) { policy = batchPolicyDefault; } new AsyncBatchExistsArrayExecutor(cluster, policy, keys, listener); }
public void Exists(Policy policy, ExistsArrayListener listener, Key[] keys) { BatchPolicy batchPolicy = GetAsyncBatchPolicy(policy); Exists(batchPolicy, listener, keys); }