forked from ServiceStack/ServiceStack
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMessageHandlerStats.cs
More file actions
67 lines (61 loc) · 2.81 KB
/
MessageHandlerStats.cs
File metadata and controls
67 lines (61 loc) · 2.81 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
using System;
using System.Text;
namespace ServiceStack.Messaging
{
public interface IMessageHandlerStats
{
string Name { get; }
int TotalMessagesProcessed { get; }
int TotalMessagesFailed { get; }
int TotalRetries { get; }
int TotalNormalMessagesReceived { get; }
int TotalPriorityMessagesReceived { get; }
DateTime? LastMessageProcessed { get; }
void Add(IMessageHandlerStats stats);
}
public class MessageHandlerStats : IMessageHandlerStats
{
public MessageHandlerStats(string name)
{
Name = name;
}
public MessageHandlerStats(string name, int totalMessagesProcessed, int totalMessagesFailed, int totalRetries,
int totalNormalMessagesReceived, int totalPriorityMessagesReceived, DateTime? lastMessageProcessed)
{
Name = name;
TotalMessagesProcessed = totalMessagesProcessed;
TotalMessagesFailed = totalMessagesFailed;
TotalRetries = totalRetries;
TotalNormalMessagesReceived = totalNormalMessagesReceived;
TotalPriorityMessagesReceived = totalPriorityMessagesReceived;
LastMessageProcessed = lastMessageProcessed;
}
public string Name { get; private set; }
public DateTime? LastMessageProcessed { get; private set; }
public int TotalMessagesProcessed { get; private set; }
public int TotalMessagesFailed { get; private set; }
public int TotalRetries { get; private set; }
public int TotalNormalMessagesReceived { get; private set; }
public int TotalPriorityMessagesReceived { get; private set; }
public virtual void Add(IMessageHandlerStats stats)
{
TotalMessagesProcessed += stats.TotalMessagesProcessed;
TotalMessagesFailed += stats.TotalMessagesFailed;
TotalRetries += stats.TotalRetries;
TotalNormalMessagesReceived += stats.TotalNormalMessagesReceived;
TotalPriorityMessagesReceived += stats.TotalPriorityMessagesReceived;
}
public override string ToString()
{
var sb = new StringBuilder("Stats for " + Name);
sb.AppendLine("\n---------------");
sb.AppendFormat("\nTotalNormalMessagesReceived: {0}", TotalNormalMessagesReceived);
sb.AppendFormat("\nTotalPriorityMessagesReceived: {0}", TotalPriorityMessagesReceived);
sb.AppendFormat("\nTotalProcessed: {0}", TotalMessagesProcessed);
sb.AppendFormat("\nTotalRetries: {0}", TotalRetries);
sb.AppendFormat("\nTotalFailed: {0}", TotalMessagesFailed);
sb.AppendFormat("\nLastMessageProcessed: {0}", LastMessageProcessed.HasValue ? LastMessageProcessed.Value.ToString() : "");
return sb.ToString();
}
}
}