Explorar o código

增加日志统计更新索引耗时

wangyc %!s(int64=7) %!d(string=hai) anos
pai
achega
68ea1eeed5

+ 11 - 5
mall-search/src/main/java/com/uas/search/jms/JmsListener.java

@@ -57,12 +57,12 @@ public class JmsListener {
      * @return 开启成功与否的提示信息
      */
     public void start(Long interval) {
-        if(interval == null){
+        if (interval == null){
             interval = INTERVAL;
-        }else{
+        } else {
             interval *= 1000;
         }
-        if(interval <= 0){
+        if (interval <= 0) {
             throw new IllegalArgumentException("interval 不合法:" + interval);
         }
 
@@ -75,20 +75,23 @@ public class JmsListener {
             Executable command = new Executable() {
                 @Override
                 public String execute() {
+                    long startTime = System.currentTimeMillis();
                     SPage<LuceneMessage> sPage = luceneMessageService.findAll(1, 100);
                     List<LuceneMessage> luceneMessages = sPage.getContent();
                     if (CollectionUtils.isEmpty(luceneMessages)) {
                         return "无消息";
                     }
-                    for(LuceneMessage luceneMessage : luceneMessages){
+                    logger.info("获取luceneMessages" + luceneMessages.size() + "条,耗时:" + (System.currentTimeMillis() - startTime));
+                    for (LuceneMessage luceneMessage : luceneMessages){
                         try {
                             process(luceneMessage);
                         } catch (Throwable e) {
                             logger.error("", e);
                         }
                     }
+                    logger.info("处理luceneMessages" + luceneMessages.size() + "条,耗时:" + (System.currentTimeMillis() - startTime));
                     // 如果消息不止一页,立即消费下一页
-                    if(sPage.getTotalPage() > 1){
+                    if (sPage.getTotalPage() > 1){
                         execute();
                     }
                     return "正常";
@@ -139,13 +142,16 @@ public class JmsListener {
      * @param luceneMessage 消息
      */
     private void process(LuceneMessage luceneMessage) {
+        long startTime = System.currentTimeMillis();
         logger.info(luceneMessage.toString());
         Long id = luceneMessage.getId();
         luceneMessage.setRetryCount(luceneMessage.getRetryCount() + 1);
         luceneMessageDao.save(luceneMessage);
         ParsedQueueMessage parsedQueueMessage = queueMessageParser.parse(luceneMessage.getTableName(), luceneMessage.getDataId(), luceneMessage.getMethodType(), luceneMessage.getData());
+        logger.info("获取源数据耗时:" + (System.currentTimeMillis() - startTime));
         List<Object> maintainedObjects = indexService.maintainIndexes(parsedQueueMessage);
         logger.info("Maintained... " + maintainedObjects);
         luceneMessageDao.dequeueLuceneMessage(id);
+        logger.info("单条索引处理耗时:" + (System.currentTimeMillis() - startTime));
     }
 }

+ 3 - 0
mall-search/src/main/java/com/uas/search/service/impl/IndexServiceImpl.java

@@ -1073,6 +1073,7 @@ public class IndexServiceImpl implements IndexService {
         }
         List<Object> maintainedObjects = new ArrayList<>();
         // 新增、更新索引
+        long startTime = System.currentTimeMillis();
         if (parsedQueueMessage.isInsert() || parsedQueueMessage.isUpdate()) {
             if (object instanceof Goods) {
                 // 先删除相关批次和器件,再重新写入
@@ -1100,6 +1101,7 @@ public class IndexServiceImpl implements IndexService {
                     maintainedObjects.add(maintainedObject);
                 }
             }
+            logger.info("index update耗时:" + (System.currentTimeMillis() - startTime));
         }
         // 删除索引
         else if (parsedQueueMessage.isDelete()) {
@@ -1147,6 +1149,7 @@ public class IndexServiceImpl implements IndexService {
                     maintainedObjects.add(maintainedObject);
                 }
             }
+            logger.info("index delete耗时:" + (System.currentTimeMillis() - startTime));
         } else {
             throw new IllegalStateException("message parsing failed!");
         }