/// <summary> /// Helper method for testing. /// </summary> /// <param name="providerName"></param> /// <param name="deploymentId"></param> /// <param name="storageConnectionString"></param> /// <param name="logger"></param> /// <returns></returns> public static async Task DeleteAllUsedAzureQueues(string providerName, string deploymentId, string storageConnectionString, Logger logger) { if (deploymentId != null) { var queueMapper = new HashRingBasedStreamQueueMapper(AzureQueueAdapterFactory.DEFAULT_NUM_QUEUES, providerName); List<QueueId> allQueues = queueMapper.GetAllQueues().ToList(); if (logger != null) logger.Info("About to delete all {0} Stream Queues\n", allQueues.Count); foreach (var queueId in allQueues) { var manager = new AzureQueueDataManager(queueId.ToString(), deploymentId, storageConnectionString); await manager.DeleteQueue(); } } }
/// <summary> /// Helper method for testing. Clears all messages in all the queues used by the specifed stream provider. /// </summary> /// <param name="providerName">The Azure Queue stream privider name.</param> /// <param name="deploymentId">The deployment ID hosting the stream provider.</param> /// <param name="storageConnectionString">The azure storage connection string.</param> public static async Task ClearAllUsedAzureQueues(string providerName, string deploymentId, string storageConnectionString) { if (deploymentId != null) { var queueMapper = new HashRingBasedStreamQueueMapper(AzureQueueAdapterFactory.NumQueuesDefaultValue, providerName); List<QueueId> allQueues = queueMapper.GetAllQueues().ToList(); var deleteTasks = new List<Task>(); foreach (var queueId in allQueues) { var manager = new AzureQueueDataManager(queueId.ToString(), deploymentId, storageConnectionString); deleteTasks.Add(manager.ClearQueue()); } await Task.WhenAll(deleteTasks); } }
/// <summary> /// Async method to delete all used queques, for specific provider and deploymentId /// </summary> /// <param name="providerName"></param> /// <param name="deploymentId"></param> /// <param name="storageConnectionString"></param> /// <returns> Task object for this async method </returns> public static async Task DeleteAllUsedQueues(string providerName, string deploymentId, string storageConnectionString) { if (deploymentId != null) { var queueMapper = new HashRingBasedStreamQueueMapper(SQSAdapterFactory.NumQueuesDefaultValue, providerName); List<QueueId> allQueues = queueMapper.GetAllQueues().ToList(); var deleteTasks = new List<Task>(); foreach (var queueId in allQueues) { var manager = new SQSStorage(queueId.ToString(), storageConnectionString, deploymentId); manager.InitQueueAsync().Wait(); deleteTasks.Add(manager.DeleteQueue()); } await Task.WhenAll(deleteTasks); } }
private Dictionary<SiloAddress, List<int>> GetQueueHistogram(Dictionary<SiloAddress, List<IRingRangeInternal>> siloRanges, int totalNumQueues) { HashRingBasedStreamQueueMapper queueMapper = new HashRingBasedStreamQueueMapper(totalNumQueues, "AzureQueues"); var allQueues = queueMapper.GetAllQueues(); Dictionary<SiloAddress, List<int>> queueHistogram = new Dictionary<SiloAddress, List<int>>(); foreach (var siloRange in siloRanges) { List<int> agentRanges = new List<int>(); foreach (IRingRangeInternal agentRange in siloRange.Value) { int numQueues = queueMapper.GetQueuesForRange(agentRange).Count(); agentRanges.Add(numQueues); } agentRanges.Sort(); queueHistogram.Add(siloRange.Key, agentRanges); } //queueHistogram.Sort((t1, t2) => t1.Item2.CompareTo(t2.Item2)); return queueHistogram; }