@@ -347,3 +347,52 @@ func TestJobComplete(t *testing.T) {
347347 assert .Error (t , err )
348348 assert .Equal (t , errors .New ("job completed" ), err )
349349}
350+
351+ func TestNSQStatsinQueue (t * testing.T ) {
352+ m := mockMessage {
353+ Message : "foo" ,
354+ }
355+ w := NewWorker (
356+ WithAddr (host + ":4150" ),
357+ WithTopic ("nsq_stats" ),
358+ WithRunFunc (func (ctx context.Context , m queue.QueuedMessage ) error {
359+ log .Println ("get message" )
360+ return nil
361+ }),
362+ )
363+ q , err := queue .NewQueue (
364+ queue .WithWorker (w ),
365+ queue .WithWorkerCount (1 ),
366+ )
367+ assert .NoError (t , err )
368+ assert .NoError (t , q .Queue (m ))
369+ assert .NoError (t , q .Queue (m ))
370+ q .Start ()
371+ assert .Equal (t , int (1 ), w .Stats ().Connections )
372+ time .Sleep (500 * time .Millisecond )
373+ assert .Equal (t , uint64 (2 ), w .Stats ().MessagesReceived )
374+ assert .Equal (t , uint64 (2 ), w .Stats ().MessagesFinished )
375+ q .Release ()
376+ assert .Equal (t , int (0 ), w .Stats ().Connections )
377+ }
378+
379+ func TestNSQStatsInWorker (t * testing.T ) {
380+ m := mockMessage {
381+ Message : "foo" ,
382+ }
383+ w := NewWorker (
384+ WithAddr (host + ":4150" ),
385+ WithTopic ("nsq_stats_queue" ),
386+ )
387+
388+ assert .NoError (t , w .Queue (m ))
389+ assert .NoError (t , w .Queue (m ))
390+ assert .NoError (t , w .Queue (m ))
391+ assert .Equal (t , int (1 ), w .Stats ().Connections )
392+ time .Sleep (300 * time .Millisecond )
393+ assert .Equal (t , uint64 (3 ), w .Stats ().MessagesReceived )
394+ assert .Equal (t , uint64 (1 ), w .Stats ().MessagesFinished )
395+ assert .Equal (t , uint64 (0 ), w .Stats ().MessagesRequeued )
396+
397+ _ = w .Shutdown ()
398+ }
0 commit comments