public Task Initialize(TimeSpan timeout) { if (queue != null) // check in case we already shut it down. { return(queue.InitQueueAsync()); } return(Task.CompletedTask); }
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); } }
/// <summary> /// Async method to delete all used queques, for specific provider and clusterId /// </summary> /// <returns> Task object for this async method </returns> public static async Task DeleteAllUsedQueues(string providerName, string clusterId, string storageConnectionString, ILoggerFactory loggerFactory) { if (clusterId != null) { var queueMapper = new HashRingBasedStreamQueueMapper(new HashRingStreamQueueMapperOptions(), providerName); List <QueueId> allQueues = queueMapper.GetAllQueues().ToList(); var deleteTasks = new List <Task>(); foreach (var queueId in allQueues) { var manager = new SQSStorage(loggerFactory, queueId.ToString(), storageConnectionString, clusterId); manager.InitQueueAsync().Wait(); deleteTasks.Add(manager.DeleteQueue()); } await Task.WhenAll(deleteTasks); } }
public async Task QueueMessageBatchAsync <T>(Guid streamGuid, string streamNamespace, IEnumerable <T> events, StreamSequenceToken token, Dictionary <string, object> requestContext) { if (token != null) { throw new ArgumentException("SQSStream stream provider currebtly does not support non-null StreamSequenceToken.", "token"); } var queueId = streamQueueMapper.GetQueueForStream(streamGuid, streamNamespace); SQSStorage queue; if (!Queues.TryGetValue(queueId, out queue)) { var tmpQueue = new SQSStorage(this.loggerFactory, queueId.ToString(), DataConnectionString, this.ServiceId); await tmpQueue.InitQueueAsync(); queue = Queues.GetOrAdd(queueId, tmpQueue); } var msg = SQSBatchContainer.ToSQSMessage(this.serializationManager, streamGuid, streamNamespace, events, requestContext); await queue.AddMessage(msg); }