File tree Expand file tree Collapse file tree 2 files changed +17
-1
lines changed
ServiceStack.Redis/Messaging Expand file tree Collapse file tree 2 files changed +17
-1
lines changed Original file line number Diff line number Diff line change @@ -35,6 +35,8 @@ public class RedisMqServer : IMessageService
35
35
36
36
public int RetryCount { get ; protected set ; }
37
37
38
+ public int ? KeepAliveRetryAfterMs { get ; set ; }
39
+
38
40
public IMessageFactory MessageFactory { get ; private set ; }
39
41
40
42
public Func < string , IOneWayClient > ReplyClientFactory { get ; set ; }
@@ -111,6 +113,7 @@ public RedisMqServer(IRedisClientsManager clientsManager,
111
113
//this.RequestTimeOut = requestTimeOut;
112
114
this . MessageFactory = new RedisMessageFactory ( clientsManager ) ;
113
115
this . ErrorHandler = ex => Log . Error ( "Exception in Redis MQ Server: " + ex . Message , ex ) ;
116
+ this . KeepAliveRetryAfterMs = 2000 ;
114
117
}
115
118
116
119
public void RegisterHandler < T > ( Func < IMessage < T > , object > processMessageFn )
@@ -314,6 +317,13 @@ private void RunLoop()
314
317
315
318
if ( this . ErrorHandler != null )
316
319
this . ErrorHandler ( ex ) ;
320
+
321
+
322
+ if ( KeepAliveRetryAfterMs != null )
323
+ {
324
+ Thread . Sleep ( KeepAliveRetryAfterMs . Value ) ;
325
+ Start ( ) ;
326
+ }
317
327
}
318
328
}
319
329
Original file line number Diff line number Diff line change @@ -19,7 +19,7 @@ class Program
19
19
static void Main ( string [ ] args )
20
20
{
21
21
22
- LogManager . LogFactory = new ConsoleLogFactory ( ) ;
22
+ // LogManager.LogFactory = new ConsoleLogFactory();
23
23
var log = LogManager . GetLogger ( typeof ( Program ) ) ;
24
24
25
25
var clientManager = new PooledRedisClientManager ( new [ ] { "localhost" } )
@@ -29,12 +29,14 @@ static void Main(string[] args)
29
29
30
30
var mqHost = new RedisMqServer ( clientManager , retryCount : 2 ) ;
31
31
32
+ var msgsProcessed = 0 ;
32
33
var sum = 0 ;
33
34
mqHost . RegisterHandler < Incr > ( c =>
34
35
{
35
36
var dto = c . GetBody ( ) ;
36
37
sum += dto . Value ;
37
38
log . InfoFormat ( "Received {0}, sum: {1}" , dto . Value , sum ) ;
39
+ msgsProcessed ++ ;
38
40
return null ;
39
41
} ) ;
40
42
@@ -100,6 +102,10 @@ static void Main(string[] args)
100
102
101
103
Thread . Sleep ( 1000 ) ;
102
104
} ) ;
105
+
106
+ Thread . Sleep ( 2000 ) ;
107
+ "Messages processed: {0}" . Print ( msgsProcessed ) ;
108
+ Console . ReadKey ( ) ;
103
109
}
104
110
}
105
111
}
You can’t perform that action at this time.
0 commit comments