You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@skywalking.apache.org by GitBox <gi...@apache.org> on 2019/10/23 02:20:25 UTC

[GitHub] [skywalking] dominicqi commented on a change in pull request #3677: Add register persistent worker latency metrics #3671

dominicqi commented on a change in pull request #3677: Add register persistent worker latency metrics  #3671
URL: https://github.com/apache/skywalking/pull/3677#discussion_r337824231
 
 

 ##########
 File path: oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/register/worker/RegisterPersistentWorker.java
 ##########
 @@ -80,39 +91,43 @@ private void onWork(RegisterSource registerSource) {
             sources.get(registerSource).combine(registerSource);
         }
 
-        if (sources.size() > 1000 || registerSource.isEndOfBatch()) {
-            sources.values().forEach(source -> {
-                try {
-                    RegisterSource dbSource = registerDAO.get(modelName, source.id());
-                    if (Objects.nonNull(dbSource)) {
-                        if (dbSource.combine(source)) {
-                            registerDAO.forceUpdate(modelName, dbSource);
-                        }
-                    } else {
-                        int sequence;
-                        if ((sequence = registerLockDAO.getId(scopeId, source)) != Const.NONE) {
-                            try {
-                                dbSource = registerDAO.get(modelName, source.id());
-                                if (Objects.nonNull(dbSource)) {
-                                    if (dbSource.combine(source)) {
-                                        registerDAO.forceUpdate(modelName, dbSource);
+        try (HistogramMetrics.Timer ignored = histogram.createTimer()) {
+            if (sources.size() > 1000 || registerSource.isEndOfBatch()) {
+                sources.values().forEach(source -> {
+                    try {
+                        RegisterSource dbSource = registerDAO.get(modelName, source.id());
+                        if (Objects.nonNull(dbSource)) {
+                            if (dbSource.combine(source)) {
+                                registerDAO.forceUpdate(modelName, dbSource);
+                            }
+                        } else {
+                            int sequence;
+                            if ((sequence = registerLockDAO.getId(scopeId, source)) != Const.NONE) {
+                                try {
+                                    dbSource = registerDAO.get(modelName, source.id());
+                                    if (Objects.nonNull(dbSource)) {
+                                        if (dbSource.combine(source)) {
+                                            registerDAO.forceUpdate(modelName, dbSource);
+                                        }
+                                    } else {
+                                        source.setSequence(sequence);
+                                        registerDAO.forceInsert(modelName, source);
                                     }
-                                } else {
-                                    source.setSequence(sequence);
-                                    registerDAO.forceInsert(modelName, source);
+                                } catch (Throwable t) {
+                                    logger.error(t.getMessage(), t);
                                 }
-                            } catch (Throwable t) {
-                                logger.error(t.getMessage(), t);
+                            } else {
+                                logger.info("{} inventory register try lock and increment sequence failure.", DefaultScopeDefine.nameOf(scopeId));
                             }
-                        } else {
-                            logger.info("{} inventory register try lock and increment sequence failure.", DefaultScopeDefine.nameOf(scopeId));
                         }
+                    } catch (Throwable t) {
+                        logger.error(t.getMessage(), t);
                     }
-                } catch (Throwable t) {
-                    logger.error(t.getMessage(), t);
-                }
-            });
-            sources.clear();
+                });
+                sources.clear();
+            }
+        } catch (IOException e) {
+            logger.error("not except exception happen", e);
 
 Review comment:
   i want use the try-with-resource sugar . The Timer#close() throws IOException that  never throw. I will remove the IOException from the close method.

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services