public QueueStatistics Statistics(string queue) { AssertValidQueuePath(queue); QueueStatistics result = null; transactionalStorage.Batch(actions => result = actions.Queues.Statistics(queue)); if (result == null)// non existant queue is also empty queue by default { return(new QueueStatistics { Name = queue, NumberOfMessages = 0 }); } return(result); }
public async Task TestQueueStatistics() { IQueueingService provider = CreateProvider(); CancellationTokenSource cancellationTokenSource = new CancellationTokenSource(TestTimeout(TimeSpan.FromSeconds(10))); QueueName queueName = CreateRandomQueueName(); await provider.CreateQueueAsync(queueName, cancellationTokenSource.Token); QueueStatistics statistics = await provider.GetQueueStatisticsAsync(queueName, cancellationTokenSource.Token); Assert.IsNotNull(statistics); QueueMessagesStatistics messageStatistics = statistics.MessageStatistics; Assert.IsNotNull(messageStatistics); Assert.AreEqual(messageStatistics.Free, 0); Assert.AreEqual(messageStatistics.Claimed, 0); Assert.AreEqual(messageStatistics.Total, 0); Assert.IsNull(messageStatistics.Oldest); Assert.IsNull(messageStatistics.Newest); Console.WriteLine("Statistics:"); Console.WriteLine(); Console.WriteLine(JsonConvert.SerializeObject(statistics, Formatting.Indented)); await provider.PostMessagesAsync(queueName, cancellationTokenSource.Token, new Message <SampleMetadata>(TimeSpan.FromSeconds(120), new SampleMetadata(3, "yes"))); statistics = await provider.GetQueueStatisticsAsync(queueName, cancellationTokenSource.Token); Assert.IsNotNull(statistics); messageStatistics = statistics.MessageStatistics; Assert.IsNotNull(messageStatistics); Assert.AreEqual(messageStatistics.Free, 1); Assert.AreEqual(messageStatistics.Claimed, 0); Assert.AreEqual(messageStatistics.Total, 1); Assert.IsNotNull(messageStatistics.Oldest); Assert.IsNotNull(messageStatistics.Newest); Console.WriteLine("Statistics:"); Console.WriteLine(); Console.WriteLine(JsonConvert.SerializeObject(statistics, Formatting.Indented)); await provider.DeleteQueueAsync(queueName, cancellationTokenSource.Token); }
public void SynchronousTestQueueStatistics() { IQueueingService provider = CreateProvider(); QueueName queueName = CreateRandomQueueName(); provider.CreateQueue(queueName); QueueStatistics statistics = provider.GetQueueStatistics(queueName); Assert.IsNotNull(statistics); QueueMessagesStatistics messageStatistics = statistics.MessageStatistics; Assert.IsNotNull(messageStatistics); Assert.AreEqual(messageStatistics.Free, 0); Assert.AreEqual(messageStatistics.Claimed, 0); Assert.AreEqual(messageStatistics.Total, 0); Assert.IsNull(messageStatistics.Oldest); Assert.IsNull(messageStatistics.Newest); Console.WriteLine("Statistics:"); Console.WriteLine(); Console.WriteLine(JsonConvert.SerializeObject(statistics, Formatting.Indented)); provider.PostMessages(queueName, new Message <SampleMetadata>(TimeSpan.FromSeconds(120), new SampleMetadata(3, "yes"))); statistics = provider.GetQueueStatistics(queueName); Assert.IsNotNull(statistics); messageStatistics = statistics.MessageStatistics; Assert.IsNotNull(messageStatistics); Assert.AreEqual(messageStatistics.Free, 1); Assert.AreEqual(messageStatistics.Claimed, 0); Assert.AreEqual(messageStatistics.Total, 1); Assert.IsNotNull(messageStatistics.Oldest); Assert.IsNotNull(messageStatistics.Newest); Console.WriteLine("Statistics:"); Console.WriteLine(); Console.WriteLine(JsonConvert.SerializeObject(statistics, Formatting.Indented)); provider.DeleteQueue(queueName); }