Skip to content

Commit d881cae

Browse files
committed
支持输出平均TPS
1 parent 103c468 commit d881cae

File tree

4 files changed

+61
-4
lines changed

4 files changed

+61
-4
lines changed

src/Samples/QuickStart/QuickStart.ConsumerClient/Program.cs

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@ static void Main(string[] args)
2222
Console.ReadLine();
2323
}
2424

25-
static ILogger _logger;
2625
static void InitializeEQueue()
2726
{
2827
ECommonConfiguration
@@ -33,7 +32,6 @@ static void InitializeEQueue()
3332
.UseJsonNet()
3433
.RegisterUnhandledExceptionHandler()
3534
.RegisterEQueueComponents();
36-
_logger = ObjectContainer.Resolve<ILoggerFactory>().Create("Program");
3735

3836
var clientCount = int.Parse(ConfigurationManager.AppSettings["ClientCount"]);
3937
var consumerSetting = new ConsumerSetting
@@ -54,12 +52,17 @@ class MessageHandler : IMessageHandler
5452
{
5553
private long _previusHandledCount;
5654
private long _handledCount;
55+
private long _calculateCount = 0;
5756
private IScheduleService _scheduleService;
57+
private ILogger _logger;
58+
private ILogger _throughputLogger;
5859

5960
public MessageHandler()
6061
{
6162
_scheduleService = ObjectContainer.Resolve<IScheduleService>();
6263
_scheduleService.StartTask("Program.PrintThroughput", PrintThroughput, 1000, 1000);
64+
_logger = ObjectContainer.Resolve<ILoggerFactory>().Create(typeof(Program).Name);
65+
_throughputLogger = ObjectContainer.Resolve<ILoggerFactory>().Create("throughput");
6366
}
6467

6568
public void Handle(QueueMessage message, IMessageContext context)
@@ -73,8 +76,19 @@ private void PrintThroughput()
7376
var totalHandledCount = _handledCount;
7477
var throughput = totalHandledCount - _previusHandledCount;
7578
_previusHandledCount = totalHandledCount;
79+
if (throughput > 0)
80+
{
81+
_calculateCount++;
82+
}
7683

77-
_logger.InfoFormat("totalReceived: {0}, throughput: {1}/s", totalHandledCount, throughput);
84+
var average = 0L;
85+
if (_calculateCount > 0)
86+
{
87+
average = totalHandledCount / _calculateCount;
88+
}
89+
90+
_logger.InfoFormat("totalReceived: {0}, throughput: {1}/s, average: {2}", totalHandledCount, throughput, average);
91+
_throughputLogger.Info(throughput);
7892
}
7993
}
8094
}

src/Samples/QuickStart/QuickStart.ConsumerClient/log4net.config

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,26 @@
1010
<param name="ConversionPattern" value="%date %5level %logger - %message%newline"/>
1111
</layout>
1212
</appender>
13+
<appender name="throughputFile" type="log4net.Appender.RollingFileAppender,log4net">
14+
<param name="File" value="logs/throughput.log"/>
15+
<param name="AppendToFile" value="true"/>
16+
<param name="RollingStyle" value="Date"/>
17+
<param name="DatePattern" value="yyyy-MM-dd"/>
18+
<param name="StaticLogFileName" value="true"/>
19+
<param name="CountDirection" value="1"/>
20+
<layout type="log4net.Layout.PatternLayout,log4net">
21+
<param name="ConversionPattern" value="%message%newline"/>
22+
</layout>
23+
</appender>
1324
<appender name="console" type="log4net.Appender.ConsoleAppender">
1425
<layout type="log4net.Layout.PatternLayout">
1526
<conversionPattern value="%date %5level %logger - %message%newline" />
1627
</layout>
1728
</appender>
29+
<logger name="throughput" additivity="false">
30+
<level value="INFO" />
31+
<appender-ref ref="throughputFile"/>
32+
</logger>
1833
<root>
1934
<!--all priority options: OFF、FATAL、ERROR, WARN, INFO, DEBUG, ALL-->
2035
<priority value="INFO"/>

src/Samples/QuickStart/QuickStart.ProducerClient/Program.cs

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,11 @@ class Program
2323
{
2424
static long _previousSentCount = 0;
2525
static long _sentCount = 0;
26+
static long _calculateCount = 0;
2627
static string _mode;
2728
static bool _hasError;
2829
static ILogger _logger;
30+
static ILogger _throughputLogger;
2931
static IScheduleService _scheduleService;
3032

3133
static void Main(string[] args)
@@ -49,6 +51,7 @@ static void InitializeEQueue()
4951
.SetDefault<IQueueSelector, QueueAverageSelector>();
5052

5153
_logger = ObjectContainer.Resolve<ILoggerFactory>().Create(typeof(Program).Name);
54+
_throughputLogger = ObjectContainer.Resolve<ILoggerFactory>().Create("throughput");
5255
_scheduleService = ObjectContainer.Resolve<IScheduleService>();
5356
}
5457
static void SendMessageTest()
@@ -163,8 +166,18 @@ static void PrintThroughput()
163166
var totalSentCount = _sentCount;
164167
var throughput = totalSentCount - _previousSentCount;
165168
_previousSentCount = totalSentCount;
169+
if (throughput > 0)
170+
{
171+
_calculateCount++;
172+
}
166173

167-
_logger.InfoFormat("Send message mode: {0}, totalSent: {1}, throughput: {2}/s", _mode, totalSentCount, throughput);
174+
var average = 0L;
175+
if (_calculateCount > 0)
176+
{
177+
average = totalSentCount / _calculateCount;
178+
}
179+
_logger.InfoFormat("Send message mode: {0}, totalSent: {1}, throughput: {2}/s, average: {3}", _mode, totalSentCount, throughput, average);
180+
_throughputLogger.Info(throughput);
168181
}
169182

170183
class ResponseHandler : IResponseHandler

src/Samples/QuickStart/QuickStart.ProducerClient/log4net.config

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,26 @@
1010
<param name="ConversionPattern" value="%date %5level %logger - %message%newline"/>
1111
</layout>
1212
</appender>
13+
<appender name="throughputFile" type="log4net.Appender.RollingFileAppender,log4net">
14+
<param name="File" value="logs/throughput.log"/>
15+
<param name="AppendToFile" value="true"/>
16+
<param name="RollingStyle" value="Date"/>
17+
<param name="DatePattern" value="yyyy-MM-dd"/>
18+
<param name="StaticLogFileName" value="true"/>
19+
<param name="CountDirection" value="1"/>
20+
<layout type="log4net.Layout.PatternLayout,log4net">
21+
<param name="ConversionPattern" value="%message%newline"/>
22+
</layout>
23+
</appender>
1324
<appender name="console" type="log4net.Appender.ConsoleAppender">
1425
<layout type="log4net.Layout.PatternLayout">
1526
<conversionPattern value="%date %5level %logger - %message%newline" />
1627
</layout>
1728
</appender>
29+
<logger name="throughput" additivity="false">
30+
<level value="INFO" />
31+
<appender-ref ref="throughputFile"/>
32+
</logger>
1833
<root>
1934
<!--all priority options: OFF、FATAL、ERROR, WARN, INFO, DEBUG, ALL-->
2035
<priority value="INFO"/>

0 commit comments

Comments
 (0)