@@ -599,13 +599,22 @@ public void xack() {
599
599
600
600
@ Test
601
601
public void xpendingWithParams () {
602
+ final String stream = "xpendeing-stream" ;
603
+
604
+ assertEquals ("OK" , jedis .xgroupCreate (stream , "xpendeing-group" , null , true ));
605
+
606
+ // Get the summary from empty stream
607
+ StreamPendingSummary emptySummary = jedis .xpending (stream , "xpendeing-group" );
608
+ assertEquals (0 , emptySummary .getTotal ());
609
+ assertNull (emptySummary .getMinId ());
610
+ assertNull (emptySummary .getMaxId ());
611
+ assertNull (emptySummary .getConsumerMessageCount ());
612
+
602
613
Map <String , String > map = new HashMap <>();
603
614
map .put ("f1" , "v1" );
604
- StreamEntryID id1 = jedis .xadd ("xpendeing- stream" , (StreamEntryID ) null , map );
615
+ StreamEntryID id1 = jedis .xadd (stream , (StreamEntryID ) null , map );
605
616
606
- assertEquals ("OK" , jedis .xgroupCreate ("xpendeing-stream" , "xpendeing-group" , null , false ));
607
-
608
- Map <String , StreamEntryID > streamQeury1 = singletonMap ("xpendeing-stream" , StreamEntryID .XREADGROUP_UNDELIVERED_ENTRY );
617
+ Map <String , StreamEntryID > streamQeury1 = singletonMap (stream , StreamEntryID .XREADGROUP_UNDELIVERED_ENTRY );
609
618
610
619
// Read the event from Stream put it on pending
611
620
List <Entry <String , List <StreamEntry >>> range = jedis .xreadGroup ("xpendeing-group" ,
@@ -614,8 +623,14 @@ public void xpendingWithParams() {
614
623
assertEquals (1 , range .get (0 ).getValue ().size ());
615
624
assertEquals (map , range .get (0 ).getValue ().get (0 ).getFields ());
616
625
626
+ // Get the summary about the pending messages
627
+ StreamPendingSummary pendingSummary = jedis .xpending (stream , "xpendeing-group" );
628
+ assertEquals (1 , pendingSummary .getTotal ());
629
+ assertEquals (id1 , pendingSummary .getMinId ());
630
+ assertEquals (1l , pendingSummary .getConsumerMessageCount ().get ("xpendeing-consumer" ).longValue ());
631
+
617
632
// Get the pending event
618
- List <StreamPendingEntry > pendingRange = jedis .xpending ("xpendeing- stream" , "xpendeing-group" ,
633
+ List <StreamPendingEntry > pendingRange = jedis .xpending (stream , "xpendeing-group" ,
619
634
new XPendingParams ().count (3 ).consumer ("xpendeing-consumer" ));
620
635
assertEquals (1 , pendingRange .size ());
621
636
assertEquals (id1 , pendingRange .get (0 ).getID ());
@@ -624,40 +639,41 @@ public void xpendingWithParams() {
624
639
assertTrue (pendingRange .get (0 ).toString ().contains ("xpendeing-consumer" ));
625
640
626
641
// Without consumer
627
- pendingRange = jedis .xpending ("xpendeing- stream" , "xpendeing-group" , new XPendingParams ().count (3 ));
642
+ pendingRange = jedis .xpending (stream , "xpendeing-group" , new XPendingParams ().count (3 ));
628
643
assertEquals (1 , pendingRange .size ());
629
644
assertEquals (id1 , pendingRange .get (0 ).getID ());
630
645
assertEquals (1 , pendingRange .get (0 ).getDeliveredTimes ());
631
646
assertEquals ("xpendeing-consumer" , pendingRange .get (0 ).getConsumerName ());
632
647
633
648
// with idle
634
- pendingRange = jedis .xpending ("xpendeing- stream" , "xpendeing-group" ,
649
+ pendingRange = jedis .xpending (stream , "xpendeing-group" ,
635
650
new XPendingParams ().idle (Duration .ofMinutes (1 ).toMillis ()).count (3 ));
636
651
assertEquals (0 , pendingRange .size ());
637
652
}
638
653
639
654
@ Test
640
655
public void xpendingRange () {
656
+ final String stream = "xpendeing-stream" ;
641
657
Map <String , String > map = new HashMap <>();
642
658
map .put ("foo" , "bar" );
643
- StreamEntryID m1 = jedis .xadd ("xpendeing- stream" , (StreamEntryID ) null , map );
644
- StreamEntryID m2 = jedis .xadd ("xpendeing- stream" , (StreamEntryID ) null , map );
645
- jedis .xgroupCreate ("xpendeing- stream" , "xpendeing-group" , null , false );
659
+ StreamEntryID m1 = jedis .xadd (stream , (StreamEntryID ) null , map );
660
+ StreamEntryID m2 = jedis .xadd (stream , (StreamEntryID ) null , map );
661
+ jedis .xgroupCreate (stream , "xpendeing-group" , null , false );
646
662
647
663
// read 1 message from the group with each consumer
648
- Map <String , StreamEntryID > streamQeury = singletonMap ("xpendeing- stream" , StreamEntryID .XREADGROUP_UNDELIVERED_ENTRY );
664
+ Map <String , StreamEntryID > streamQeury = singletonMap (stream , StreamEntryID .XREADGROUP_UNDELIVERED_ENTRY );
649
665
jedis .xreadGroup ("xpendeing-group" , "consumer1" , XReadGroupParams .xReadGroupParams ().count (1 ), streamQeury );
650
666
jedis .xreadGroup ("xpendeing-group" , "consumer2" , XReadGroupParams .xReadGroupParams ().count (1 ), streamQeury );
651
667
652
- List <StreamPendingEntry > response = jedis .xpending ("xpendeing- stream" , "xpendeing-group" ,
668
+ List <StreamPendingEntry > response = jedis .xpending (stream , "xpendeing-group" ,
653
669
XPendingParams .xPendingParams ("(0" , "+" , 5 ));
654
670
assertEquals (2 , response .size ());
655
671
assertEquals (m1 , response .get (0 ).getID ());
656
672
assertEquals ("consumer1" , response .get (0 ).getConsumerName ());
657
673
assertEquals (m2 , response .get (1 ).getID ());
658
674
assertEquals ("consumer2" , response .get (1 ).getConsumerName ());
659
675
660
- response = jedis .xpending ("xpendeing- stream" , "xpendeing-group" ,
676
+ response = jedis .xpending (stream , "xpendeing-group" ,
661
677
XPendingParams .xPendingParams (StreamEntryID .MINIMUM_ID , StreamEntryID .MAXIMUM_ID , 5 ));
662
678
assertEquals (2 , response .size ());
663
679
assertEquals (m1 , response .get (0 ).getID ());
@@ -668,18 +684,19 @@ public void xpendingRange() {
668
684
669
685
@ Test
670
686
public void xclaimWithParams () {
687
+ final String stream = "xpendeing-stream" ;
671
688
Map <String , String > map = new HashMap <>();
672
689
map .put ("f1" , "v1" );
673
- jedis .xadd ("xpendeing- stream" , (StreamEntryID ) null , map );
690
+ jedis .xadd (stream , (StreamEntryID ) null , map );
674
691
675
- assertEquals ("OK" , jedis .xgroupCreate ("xpendeing- stream" , "xpendeing-group" , null , false ));
692
+ assertEquals ("OK" , jedis .xgroupCreate (stream , "xpendeing-group" , null , false ));
676
693
677
694
// Read the event from Stream put it on pending
678
695
jedis .xreadGroup ("xpendeing-group" , "xpendeing-consumer" , XReadGroupParams .xReadGroupParams ().count (1 ).block (1 ),
679
- singletonMap ("xpendeing- stream" , StreamEntryID .XREADGROUP_UNDELIVERED_ENTRY ));
696
+ singletonMap (stream , StreamEntryID .XREADGROUP_UNDELIVERED_ENTRY ));
680
697
681
698
// Get the pending event
682
- List <StreamPendingEntry > pendingRange = jedis .xpending ("xpendeing- stream" , "xpendeing-group" ,
699
+ List <StreamPendingEntry > pendingRange = jedis .xpending (stream , "xpendeing-group" ,
683
700
XPendingParams .xPendingParams ().count (3 ).consumer ("xpendeing-consumer" ));
684
701
685
702
// Sleep for 100ms so we can claim events pending for more than 50ms
@@ -689,7 +706,7 @@ public void xclaimWithParams() {
689
706
e .printStackTrace ();
690
707
}
691
708
692
- List <StreamEntry > streamEntrys = jedis .xclaim ("xpendeing- stream" , "xpendeing-group" ,
709
+ List <StreamEntry > streamEntrys = jedis .xclaim (stream , "xpendeing-group" ,
693
710
"xpendeing-consumer2" , 50 , XClaimParams .xClaimParams ().idle (0 ).retryCount (0 ),
694
711
pendingRange .get (0 ).getID ());
695
712
assertEquals (1 , streamEntrys .size ());
@@ -699,18 +716,19 @@ public void xclaimWithParams() {
699
716
700
717
@ Test
701
718
public void xclaimJustId () {
719
+ final String stream = "xpendeing-stream" ;
702
720
Map <String , String > map = new HashMap <>();
703
721
map .put ("f1" , "v1" );
704
- jedis .xadd ("xpendeing- stream" , (StreamEntryID ) null , map );
722
+ jedis .xadd (stream , (StreamEntryID ) null , map );
705
723
706
- assertEquals ("OK" , jedis .xgroupCreate ("xpendeing- stream" , "xpendeing-group" , null , false ));
724
+ assertEquals ("OK" , jedis .xgroupCreate (stream , "xpendeing-group" , null , false ));
707
725
708
726
// Read the event from Stream put it on pending
709
727
jedis .xreadGroup ("xpendeing-group" , "xpendeing-consumer" , XReadGroupParams .xReadGroupParams ().count (1 ).block (1 ),
710
- singletonMap ("xpendeing- stream" , StreamEntryID .XREADGROUP_UNDELIVERED_ENTRY ));
728
+ singletonMap (stream , StreamEntryID .XREADGROUP_UNDELIVERED_ENTRY ));
711
729
712
730
// Get the pending event
713
- List <StreamPendingEntry > pendingRange = jedis .xpending ("xpendeing- stream" , "xpendeing-group" ,
731
+ List <StreamPendingEntry > pendingRange = jedis .xpending (stream , "xpendeing-group" ,
714
732
XPendingParams .xPendingParams ().count (3 ).consumer ("xpendeing-consumer" ));
715
733
// Sleep for 100ms so we can claim events pending for more than 50ms
716
734
try {
@@ -719,7 +737,7 @@ public void xclaimJustId() {
719
737
e .printStackTrace ();
720
738
}
721
739
722
- List <StreamEntryID > streamEntryIDS = jedis .xclaimJustId ("xpendeing- stream" , "xpendeing-group" ,
740
+ List <StreamEntryID > streamEntryIDS = jedis .xclaimJustId (stream , "xpendeing-group" ,
723
741
"xpendeing-consumer2" , 50 , XClaimParams .xClaimParams ().idle (0 ).retryCount (0 ),
724
742
pendingRange .get (0 ).getID ());
725
743
assertEquals (1 , streamEntryIDS .size ());
0 commit comments