public void Can_remove_empty_temp_queues() { //Clean up sqsQueueManager.RemoveEmptyTemporaryQueues(DateTime.UtcNow.AddDays(5).ToUnixTime()); var nonEmptyTempQueue = sqsQueueManager.CreateQueue(QueueNames.GetTempQueueName()); sqsQueueManager.SqsClient.SendMessage(new SendMessageRequest(nonEmptyTempQueue.QueueUrl, "Just some text")); sqsQueueManager.SqsClient.SendMessage(new SendMessageRequest(nonEmptyTempQueue.QueueUrl, "Just some more text")); var emptyTempQueue1 = sqsQueueManager.CreateQueue(QueueNames.GetTempQueueName()); var emptyTempQueue2 = sqsQueueManager.CreateQueue(QueueNames.GetTempQueueName()); var emptyTempQueueNotCached = sqsQueueManager.CreateQueue(QueueNames.GetTempQueueName()); if (!SqsTestAssert.IsFakeClient) { // List queue doesn't return newly created queues for a bit, so if this a "real", we skip this part sqsQueueManager.QueueNameMap.TryRemove(emptyTempQueueNotCached.QueueName, out _); } var countOfQueuesRemoved = sqsQueueManager.RemoveEmptyTemporaryQueues(DateTime.UtcNow.AddDays(5).ToUnixTime()); try { SqsTestAssert.FakeEqualRealGreater(3, 2, countOfQueuesRemoved); } finally { // Cleanup sqsQueueManager.DeleteQueue(nonEmptyTempQueue.QueueName); sqsQueueManager.DeleteQueue(emptyTempQueue1.QueueName); sqsQueueManager.DeleteQueue(emptyTempQueue2.QueueName); sqsQueueManager.DeleteQueue(emptyTempQueueNotCached.QueueName); } }
public string GetTempQueueName() { // NOTE: Purposely not creating DLQ queues for all these temps if they get used, they'll get // created on the fly as needed if messages actually fail var queueDefinition = sqsQueueManager.GetOrCreate(QueueNames.GetTempQueueName()); return(queueDefinition.QueueName); }
public void Can_determine_TempQueue_with_Custom_QueuePrefix() { QueueNames.SetQueuePrefix("site1."); var tmpName = QueueNames.GetTempQueueName(); Assert.That(QueueNames.IsTempQueue(tmpName), Is.True); QueueNames.SetQueuePrefix(""); }
public string GetTempQueueName() { var anonMq = Channel.QueueDeclare( queue: QueueNames.GetTempQueueName(), durable: false, exclusive: true, autoDelete: true, arguments: null); return(anonMq.QueueName); }
public void Can_determine_TempQueue_with_Custom_QueueNameFm() { QueueNames.ResolveQueueNameFn = (typeName, suffix) => "SITE.{0}{1}".Fmt(typeName, suffix.ToUpper()); var tmpName = QueueNames.GetTempQueueName(); Assert.That(QueueNames.IsTempQueue(tmpName), Is.True); QueueNames.ResolveQueueNameFn = QueueNames.ResolveQueueName; }
public void Can_expire_temp_queues() { using (var mqServer = (RedisMqServer)CreateMqServer()) using (var client = mqServer.ClientsManager.GetClient()) { client.FlushAll(); 100.Times(i => client.AddItemToList(QueueNames.GetTempQueueName(), i.ToString())); var itemsToExpire = mqServer.ExpireTemporaryQueues(afterMs: 100); var tmpWildCard = QueueNames.TempMqPrefix + "*"; Assert.That(itemsToExpire, Is.EqualTo(100)); Assert.That(client.SearchKeys(tmpWildCard).Count, Is.EqualTo(100)); Thread.Sleep(200); Assert.That(client.SearchKeys(tmpWildCard).Count, Is.EqualTo(0)); } }
public string GetTempQueueName() { return(QueueNames.GetTempQueueName()); }
public void Can_determine_TempQueue() { var tmpName = QueueNames.GetTempQueueName(); Assert.That(QueueNames.IsTempQueue(tmpName), Is.True); }