mirror of
https://github.com/apache/rocketmq-dashboard.git
synced 2025-09-10 11:40:01 +08:00
@@ -49,8 +49,13 @@ public class TopicController {
|
||||
|
||||
@RequestMapping(value = "/list.query", method = RequestMethod.GET)
|
||||
@ResponseBody
|
||||
public Object list() throws MQClientException, RemotingException, InterruptedException {
|
||||
return topicService.fetchAllTopicList();
|
||||
public Object list(@RequestParam(value = "skipSysProcess", required = false) String skipSysProcess)
|
||||
throws MQClientException, RemotingException, InterruptedException {
|
||||
boolean flag = false;
|
||||
if ("true".equals(skipSysProcess)) {
|
||||
flag = true;
|
||||
}
|
||||
return topicService.fetchAllTopicList(flag);
|
||||
}
|
||||
|
||||
@RequestMapping(value = "/stats.query", method = RequestMethod.GET)
|
||||
|
@@ -29,7 +29,7 @@ import org.apache.rocketmq.console.model.request.TopicConfigInfo;
|
||||
import java.util.List;
|
||||
|
||||
public interface TopicService {
|
||||
TopicList fetchAllTopicList();
|
||||
TopicList fetchAllTopicList(boolean skipSysProcess);
|
||||
|
||||
TopicStatsTable stats(String topic);
|
||||
|
||||
|
@@ -38,6 +38,7 @@ import org.apache.rocketmq.common.message.MessageQueue;
|
||||
import org.apache.rocketmq.common.protocol.body.Connection;
|
||||
import org.apache.rocketmq.common.protocol.body.ConsumeMessageDirectlyResult;
|
||||
import org.apache.rocketmq.common.protocol.body.ConsumerConnection;
|
||||
import org.apache.rocketmq.console.exception.ServiceException;
|
||||
import org.apache.rocketmq.console.model.MessageView;
|
||||
import org.apache.rocketmq.console.service.MessageService;
|
||||
import org.apache.rocketmq.tools.admin.MQAdminExt;
|
||||
@@ -66,7 +67,7 @@ public class MessageServiceImpl implements MessageService {
|
||||
return new Pair<>(MessageView.fromMessageExt(messageExt), messageTrackList);
|
||||
}
|
||||
catch (Exception e) {
|
||||
throw Throwables.propagate(e);
|
||||
throw new ServiceException(-1, String.format("Failed to query message by Id: %s", msgId));
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -55,10 +55,14 @@ public class TopicServiceImpl extends AbstractCommonService implements TopicServ
|
||||
private RMQConfigure rMQConfigure;
|
||||
|
||||
@Override
|
||||
public TopicList fetchAllTopicList() {
|
||||
public TopicList fetchAllTopicList(boolean skipSysProcess) {
|
||||
try {
|
||||
TopicList sysTopics = getSystemTopicList();
|
||||
TopicList allTopics = mqAdminExt.fetchAllTopicList();
|
||||
if (skipSysProcess) {
|
||||
return allTopics;
|
||||
}
|
||||
|
||||
TopicList sysTopics = getSystemTopicList();
|
||||
Set<String> topics = new HashSet<>();
|
||||
|
||||
for (String topic: allTopics.getTopicList()) {
|
||||
|
@@ -39,7 +39,7 @@ public class GlobalExceptionHandler {
|
||||
value = new JsonResult<Object>(((ServiceException) ex).getCode(), ex.getMessage());
|
||||
}
|
||||
else {
|
||||
value = new JsonResult<Object>(-1, ex.getMessage());
|
||||
value = new JsonResult<Object>(-1, ex.getMessage() == null ? ex.toString() : ex.getMessage());
|
||||
}
|
||||
}
|
||||
return value;
|
||||
|
@@ -27,7 +27,10 @@ module.controller('messageController', ['$scope', 'ngDialog', '$http','Notificat
|
||||
$scope.queryMessageByMessageIdResult={};
|
||||
$http({
|
||||
method: "GET",
|
||||
url: "topic/list.query"
|
||||
url: "topic/list.query",
|
||||
params: {
|
||||
skipSysProcess: 'true'
|
||||
}
|
||||
}).success(function (resp) {
|
||||
if(resp.status ==0){
|
||||
$scope.allTopicList = resp.data.topicList.sort();
|
||||
@@ -57,6 +60,11 @@ module.controller('messageController', ['$scope', 'ngDialog', '$http','Notificat
|
||||
console.log($scope.selectedTopic);
|
||||
console.log($scope.timepickerBegin)
|
||||
console.log($scope.timepickerEnd)
|
||||
if ($scope.timepickerEnd < $scope.timepickerBegin) {
|
||||
Notification.error({message: "endTime is later than beginTime!", delay: 2000});
|
||||
return
|
||||
}
|
||||
|
||||
$http({
|
||||
method: "GET",
|
||||
url: "message/queryMessageByTopic.query",
|
||||
|
@@ -28,7 +28,10 @@ module.controller('messageTraceController', ['$scope', 'ngDialog', '$http','Noti
|
||||
|
||||
$http({
|
||||
method: "GET",
|
||||
url: "topic/list.query"
|
||||
url: "topic/list.query",
|
||||
params: {
|
||||
skipSysProcess:"true"
|
||||
}
|
||||
}).success(function (resp) {
|
||||
if(resp.status ==0){
|
||||
$scope.allTopicList = resp.data.topicList.sort();
|
||||
|
@@ -21,7 +21,10 @@ module.controller('producerController', ['$scope', '$http','Notification',functi
|
||||
$scope.producerGroup="";
|
||||
$http({
|
||||
method: "GET",
|
||||
url: "topic/list.query"
|
||||
url: "topic/list.query",
|
||||
params:{
|
||||
skipSysProcess:"true"
|
||||
}
|
||||
}).success(function (resp) {
|
||||
if(resp.status ==0){
|
||||
$scope.allTopicList = resp.data.topicList.sort();
|
||||
|
@@ -379,10 +379,10 @@
|
||||
</script>
|
||||
|
||||
|
||||
<!--删除 消费(订阅)者-->
|
||||
<!--消费(订阅)详情-->
|
||||
<script type="text/ng-template" id="consumerTopicViewDialog">
|
||||
<div class="modal-header">
|
||||
<h4 class="modal-title">[{{ngDialogData.consumerGroupName}}]Detail</h4>
|
||||
<h4 class="modal-title">[{{ngDialogData.consumerGroupName}}]{{'CONSUME_DETAIL' | translate}}</h4>
|
||||
</div>
|
||||
<div class="modal-body ">
|
||||
<table class="table table-bordered table-hover" ng-repeat="consumeDetail in ngDialogData.data">
|
||||
@@ -396,7 +396,7 @@
|
||||
<td><label>{{ 'DELAY' | translate }}</label></td>
|
||||
<td>{{consumeDetail.diffTotal}}</td>
|
||||
<td><label>{{ 'LAST_CONSUME_TIME' | translate }}</label></td>
|
||||
<td>{{consumeDetail.lastTimestamp | date:'yyyy-MM-dd HH:mm:ss'}}</td>
|
||||
<td>{{(consumeDetail.lastTimestamp == 0)?"N/A":consumeDetail.lastTimestamp | date:'yyyy-MM-dd HH:mm:ss'}}</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
@@ -422,7 +422,7 @@
|
||||
<td class="text-center">{{item.brokerOffset}}</td>
|
||||
<td class="text-center">{{item.consumerOffset}}</td>
|
||||
<td class="text-center">{{item.brokerOffset-item.consumerOffset}}</td>
|
||||
<td class="text-center">{{item.lastTimestamp | date:'yyyy-MM-dd HH:mm:ss'}}</td>
|
||||
<td class="text-center">{{(item.lastTimestamp == 0)?"N/A":item.lastTimestamp | date:'yyyy-MM-dd HH:mm:ss'}}</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
|
@@ -64,7 +64,7 @@ public class TopicServiceImplTest extends RocketMQConsoleTestBase {
|
||||
|
||||
@Test
|
||||
public void fetchAllTopicList() throws Exception {
|
||||
TopicList topicList = topicService.fetchAllTopicList();
|
||||
TopicList topicList = topicService.fetchAllTopicList(true);
|
||||
Assert.assertNotNull(topicList);
|
||||
Assert.assertTrue(CollectionUtils.isNotEmpty(topicList.getTopicList()));
|
||||
Assert.assertTrue(topicList.getTopicList().contains(TEST_CONSOLE_TOPIC));
|
||||
@@ -107,7 +107,7 @@ public class TopicServiceImplTest extends RocketMQConsoleTestBase {
|
||||
topicConfigInfo.setTopicName(TEST_CREATE_DELETE_TOPIC);
|
||||
topicService.createOrUpdate(topicConfigInfo);
|
||||
|
||||
TopicList topicList = topicService.fetchAllTopicList();
|
||||
TopicList topicList = topicService.fetchAllTopicList(true);
|
||||
|
||||
Assert.assertNotNull(topicList);
|
||||
Assert.assertTrue(CollectionUtils.isNotEmpty(topicList.getTopicList()));
|
||||
|
Reference in New Issue
Block a user