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>