[ 
https://issues.apache.org/jira/browse/SCB-526?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16461117#comment-16461117
 ] 

ASF GitHub Bot commented on SCB-526:
------------------------------------

wujimin commented on a change in pull request #681: [SCB-526]fetch once from 
dynamic config source when boot up
URL: 
https://github.com/apache/incubator-servicecomb-java-chassis/pull/681#discussion_r185523261
 
 

 ##########
 File path: 
dynamic-config/config-cc/src/main/java/org/apache/servicecomb/config/client/ConfigCenterClient.java
 ##########
 @@ -128,24 +130,28 @@ public void connectServer() {
     } catch (InterruptedException e) {
       throw new IllegalStateException(e);
     }
-    refreshMembers(memberDiscovery);
-    EXECUTOR.scheduleWithFixedDelay(new ConfigRefresh(parseConfigUtils, 
memberDiscovery),
+    refreshMembers(memberDiscovery, true);
+    ConfigRefresh refreshTask = new ConfigRefresh(parseConfigUtils, 
memberDiscovery);
+    refreshTask.run(true);
+    EXECUTOR.scheduleWithFixedDelay(refreshTask,
         firstRefreshInterval,
         refreshInterval,
         TimeUnit.MILLISECONDS);
   }
 
-  private void refreshMembers(MemberDiscovery memberDiscovery) {
+  private void refreshMembers(MemberDiscovery memberDiscovery, boolean wait) {
     if (CONFIG_CENTER_CONFIG.getAutoDiscoveryEnabled()) {
       String configCenter = memberDiscovery.getConfigServer();
       IpPort ipPort = NetUtils.parseIpPortFromURI(configCenter);
+      CountDownLatch latch = new CountDownLatch(1);
       clientMgr.findThreadBindClientPool().runOnContext(client -> {
         HttpClientRequest request = client.get(ipPort.getPort(), 
ipPort.getHostOrIp(), URIConst.MEMBERS, rsp -> {
           if (rsp.statusCode() == HttpResponseStatus.OK.code()) {
             rsp.bodyHandler(buf -> {
               memberDiscovery.refreshMembers(buf.toJsonObject());
             });
           }
+          latch.countDown();
 
 Review comment:
   no need to wait response body?

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


> When creating dynamic configuration, we need to fetch once for the 
> configuration when startup
> ---------------------------------------------------------------------------------------------
>
>                 Key: SCB-526
>                 URL: https://issues.apache.org/jira/browse/SCB-526
>             Project: Apache ServiceComb
>          Issue Type: Improvement
>            Reporter: liubao
>            Assignee: liubao
>            Priority: Major
>
> Currently, dynamic config is fetched asynchronously, and when users use 
> dynamic configuration for following scenario will fail:
>  # make some environment, e.g. credentials
>  # spring @Value mechanism
> and so on. 
>  
> When users put these configurations to some dynamic configuration server, 
> they can assume server is running OK, and if try to fetch will give the 
> correct response. 
>  
> So it's very useful to fetch configurations once when boot up. 
>  
>  
>  
>  



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to