private SQSAdapterReceiver(QueueId queueId, SQSStorage queue) { if (queueId == null) { throw new ArgumentNullException("queueId"); } if (queue == null) { throw new ArgumentNullException("queue"); } Id = queueId; this.queue = queue; logger = LogManager.GetLogger(GetType().Name, LoggerType.Provider); }
public async Task Shutdown(TimeSpan timeout) { try { // await the last storage operation, so after we shutdown and stop this receiver we don't get async operation completions from pending storage operations. if (outstandingTask != null) { await outstandingTask; } } finally { // remember that we shut down so we never try to read from the queue again. queue = null; } }
private SQSAdapterReceiver(SerializationManager serializationManager, ILoggerFactory loggerFactory, QueueId queueId, SQSStorage queue) { if (queueId == null) { throw new ArgumentNullException("queueId"); } if (queue == null) { throw new ArgumentNullException("queue"); } Id = queueId; this.queue = queue; logger = loggerFactory.CreateLogger <SQSAdapterReceiver>(); this.serializationManager = serializationManager; }
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); }
public static IQueueAdapterReceiver Create(SerializationManager serializationManager, ILoggerFactory loggerFactory, QueueId queueId, string dataConnectionString, string deploymentId) { if (queueId == null) { throw new ArgumentNullException("queueId"); } if (string.IsNullOrEmpty(dataConnectionString)) { throw new ArgumentNullException("dataConnectionString"); } if (string.IsNullOrEmpty(deploymentId)) { throw new ArgumentNullException("deploymentId"); } var queue = new SQSStorage(loggerFactory, queueId.ToString(), dataConnectionString, deploymentId); return(new SQSAdapterReceiver(serializationManager, loggerFactory, queueId, queue)); }
public static IQueueAdapterReceiver Create(Serializer <SQSBatchContainer> serializer, ILoggerFactory loggerFactory, QueueId queueId, string dataConnectionString, string serviceId) { if (queueId == null) { throw new ArgumentNullException("queueId"); } if (string.IsNullOrEmpty(dataConnectionString)) { throw new ArgumentNullException("dataConnectionString"); } if (string.IsNullOrEmpty(serviceId)) { throw new ArgumentNullException(nameof(serviceId)); } var queue = new SQSStorage(loggerFactory, queueId.ToString(), dataConnectionString, serviceId); return(new SQSAdapterReceiver(serializer, loggerFactory, queueId, queue)); }