This is an automated email from the ASF dual-hosted git repository.

jinrongtong pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/rocketmq-dashboard.git


The following commit(s) were added to refs/heads/master by this push:
     new a450594  fix: Add consumer global refresh and fix the problem #290 
(#291)
a450594 is described below

commit a450594ace9fa4d6b6bd33578277d0eb164aa78b
Author: Xu Yichi <[email protected]>
AuthorDate: Tue Apr 15 09:49:34 2025 +0800

    fix: Add consumer global refresh and fix the problem #290 (#291)
---
 .../dashboard/controller/ConsumerController.java   |  6 ++++
 .../dashboard/service/ConsumerService.java         |  2 ++
 .../service/impl/ConsumerServiceImpl.java          |  7 +++++
 src/main/resources/static/src/consumer.js          | 34 ++++++++++++++++++----
 src/main/resources/static/view/pages/consumer.html |  3 ++
 5 files changed, 47 insertions(+), 5 deletions(-)

diff --git 
a/src/main/java/org/apache/rocketmq/dashboard/controller/ConsumerController.java
 
b/src/main/java/org/apache/rocketmq/dashboard/controller/ConsumerController.java
index cf4a210..59055a7 100644
--- 
a/src/main/java/org/apache/rocketmq/dashboard/controller/ConsumerController.java
+++ 
b/src/main/java/org/apache/rocketmq/dashboard/controller/ConsumerController.java
@@ -58,6 +58,12 @@ public class ConsumerController {
         return consumerService.refreshGroup(address, consumerGroup);
     }
 
+    @RequestMapping(value = "group.refresh.all")
+    @ResponseBody
+    public Object refreshAll(String address) {
+        return consumerService.refreshAllGroup(address);
+    }
+
     @RequestMapping(value = "/group.query")
     @ResponseBody
     public Object groupQuery(@RequestParam String consumerGroup, String 
address) {
diff --git 
a/src/main/java/org/apache/rocketmq/dashboard/service/ConsumerService.java 
b/src/main/java/org/apache/rocketmq/dashboard/service/ConsumerService.java
index 001a184..60bc1b3 100644
--- a/src/main/java/org/apache/rocketmq/dashboard/service/ConsumerService.java
+++ b/src/main/java/org/apache/rocketmq/dashboard/service/ConsumerService.java
@@ -57,4 +57,6 @@ public interface ConsumerService {
     ConsumerRunningInfo getConsumerRunningInfo(String consumerGroup, String 
clientId, boolean jstack);
 
     Object refreshGroup(String address, String consumerGroup);
+
+    Object refreshAllGroup(String address);
 }
diff --git 
a/src/main/java/org/apache/rocketmq/dashboard/service/impl/ConsumerServiceImpl.java
 
b/src/main/java/org/apache/rocketmq/dashboard/service/impl/ConsumerServiceImpl.java
index 2f81582..2219782 100644
--- 
a/src/main/java/org/apache/rocketmq/dashboard/service/impl/ConsumerServiceImpl.java
+++ 
b/src/main/java/org/apache/rocketmq/dashboard/service/impl/ConsumerServiceImpl.java
@@ -529,6 +529,7 @@ public class ConsumerServiceImpl extends 
AbstractCommonService implements Consum
                 if (groupConsumeInfo.getGroup().equals(consumerGroup)) {
                     GroupConsumeInfo updatedInfo = queryGroup(consumerGroup, 
"");
                     updatedInfo.setUpdateTime(new Date());
+                    updatedInfo.setGroup(consumerGroup);
                     cacheConsumeInfoList.set(i, updatedInfo);
                     return updatedInfo;
                 }
@@ -536,4 +537,10 @@ public class ConsumerServiceImpl extends 
AbstractCommonService implements Consum
         }
         throw new RuntimeException("No consumer group information available");
     }
+
+    @Override
+    public List<GroupConsumeInfo> refreshAllGroup(String address) {
+        cacheConsumeInfoList.clear();
+        return queryGroupList(false, address);
+    }
 }
diff --git a/src/main/resources/static/src/consumer.js 
b/src/main/resources/static/src/consumer.js
index 8d5f2c7..43720ab 100644
--- a/src/main/resources/static/src/consumer.js
+++ b/src/main/resources/static/src/consumer.js
@@ -98,7 +98,7 @@ module.controller('consumerController', ['$scope', 
'ngDialog', '$http', 'Notific
         });
     }
 
-    $scope.refreshConsumerData = function () {
+    $scope.queryConsumerData = function () {
         //Show loader
         $('#loaderConsumer').removeClass("hide-myloader");
 
@@ -123,6 +123,30 @@ module.controller('consumerController', ['$scope', 
'ngDialog', '$http', 'Notific
             }
         });
     };
+    $scope.refreshConsumerData = function () {
+        //Show loader
+        $('#loaderConsumer').removeClass("hide-myloader");
+
+        $http({
+            method: "GET",
+            url: "consumer/group.refresh.all",
+            params: {
+                skipSysGroup: false
+            }
+        }).success(function (resp) {
+            if (resp.status == 0) {
+                $scope.allConsumerGrouopList = resp.data;
+                console.log($scope.allConsumerGrouopList);
+                console.log(JSON.stringify(resp));
+                
$scope.showConsumerGroupList($scope.paginationConf.currentPage, 
$scope.allConsumerGrouopList.length);
+
+                //Hide loader
+                $('#loaderConsumer').addClass("hide-myloader");
+            } else {
+                Notification.error({message: resp.errMsg, delay: 2000});
+            }
+        });
+    };
     $scope.monitor = function (consumerGroupName) {
         $http({
             method: "GET",
@@ -148,12 +172,12 @@ module.controller('consumerController', ['$scope', 
'ngDialog', '$http', 'Notific
             $scope.intervalProcess = null;
         }
         if ($scope.intervalProcessSwitch) {
-            $scope.intervalProcess = setInterval($scope.refreshConsumerData, 
10000);
+            $scope.intervalProcess = setInterval($scope.queryConsumerData, 
10000);
         }
     });
 
 
-    $scope.refreshConsumerData();
+    $scope.queryConsumerData();
     $scope.filterStr = "";
     $scope.$watch('filterStr', function () {
         $scope.paginationConf.currentPage = 1;
@@ -255,7 +279,7 @@ module.controller('consumerController', ['$scope', 
'ngDialog', '$http', 'Notific
                 ngDialog.open({
                     preCloseCallback: function (value) {
                         // Refresh topic list
-                        $scope.refreshConsumerData();
+                        $scope.queryConsumerData();
                     },
                     template: $scope.rmqVersion ? 'consumerModifyDialogForV5' 
: 'consumerModifyDialog',
                     controller: 'consumerModifyDialogController',
@@ -339,7 +363,7 @@ module.controller('consumerController', ['$scope', 
'ngDialog', '$http', 'Notific
                 ngDialog.open({
                     preCloseCallback: function (value) {
                         // Refresh topic list
-                        $scope.refreshConsumerData();
+                        $scope.queryConsumerData();
                     },
                     template: 'deleteConsumerDialog',
                     controller: 'deleteConsumerDialogController',
diff --git a/src/main/resources/static/view/pages/consumer.html 
b/src/main/resources/static/view/pages/consumer.html
index c187f72..37e4e89 100644
--- a/src/main/resources/static/view/pages/consumer.html
+++ b/src/main/resources/static/view/pages/consumer.html
@@ -33,6 +33,9 @@
                 <button class="btn btn-raised btn-sm btn-primary" 
type="button" ng-show="{{writeOperationEnabled}}"
                         ng-click="openAddDialog()">{{'ADD' | translate}}/ 
{{'UPDATE' | translate}}
                 </button>
+                <button class="btn btn-raised btn-sm btn-primary" 
type="button" ng-click="refreshConsumerData()">
+                    {{'REFRESH' | translate}}
+                </button>
                 <md-switch class="md-primary" md-no-ink aria-label="Switch No 
Ink" ng-model="intervalProcessSwitch">
                     {{'AUTO_REFRESH' | translate}}
                 </md-switch>

Reply via email to