public boolean doProxyEntryQueryWork(ProcessResult procResult) {
        /* Request the configuration from manager. */
        if (localMd5 == null) {
            localMd5 = calcHostInfoMd5(proxyInfoList);
        }
        ProxyConfigEntry rmtProxyConfigEntry = null;
        if (mgrConfig.isOnlyUseLocalProxyConfig()) {
            if (!getLocalProxyListFromFile(this.localProxyConfigStoreFile, procResult)) {
                return false;
            }
            rmtProxyConfigEntry = (ProxyConfigEntry) procResult.getRetData();
        } else {
            int retryCnt = 0;
            while (!shutDown.get()) {
                if (requestProxyEntryQuietly(procResult)) {
                    break;
                }
                if (++retryCnt >= this.mgrConfig.getMetaSyncMaxRetryIfFail() || shutDown.get()) {
                    break;
                }
                // sleep then retry.
                ProxyUtils.sleepSomeTime(mgrConfig.getMetaSyncWaitMsIfFail());
            }
            if (shutDown.get()) {
                return procResult.setFailResult(ErrorCode.SDK_CLOSED);
            }
            if (procResult.isSuccess()) {
                rmtProxyConfigEntry = (ProxyConfigEntry) procResult.getRetData();
                tryToWriteCacheProxyEntry(rmtProxyConfigEntry);
            }
            /* We should exit if no local IP list and can't request it from TDManager. */
            if (localMd5 == null && rmtProxyConfigEntry == null) {
                if (exptCounter.shouldPrint()) {
                    logger.warn("ConfigManager({}) connect manager({}) failure, get cached configure, groupId={}",
                            this.callerId, this.proxyConfigVisitUrl, this.mgrConfig.getInlongGroupId());
                }
                if (tryToReadCacheProxyEntry(procResult)) {
                    rmtProxyConfigEntry = (ProxyConfigEntry) procResult.getRetData();
                }
            }
            if (localMd5 != null && rmtProxyConfigEntry == null && proxyInfoList != null) {
                if (exptCounter.shouldPrint()) {
                    logger.warn("ConfigManager({}) connect manager({}) failure, using the last configure, groupId={}",
                            this.callerId, this.proxyConfigVisitUrl, this.mgrConfig.getInlongGroupId());
                }
            }
        }
        if (localMd5 == null && rmtProxyConfigEntry == null && proxyInfoList == null) {
            if (exptCounter.shouldPrint()) {
                if (mgrConfig.isOnlyUseLocalProxyConfig()) {
                    logger.warn("ConfigManager({}) continue fetch proxy meta failure, localFile={}, groupId={}",
                            this.callerId, this.localProxyConfigStoreFile, this.mgrConfig.getInlongGroupId());
                } else {
                    logger.warn("ConfigManager({}) continue fetch proxy meta failure, manager={}, groupId={}",
                            this.callerId, this.proxyConfigVisitUrl, this.mgrConfig.getInlongGroupId());
                }
            }
            return procResult.isSuccess();
        }
        compareAndUpdateProxyList(rmtProxyConfigEntry);
        return procResult.setSuccess();
    }
request proxyHost list from manager, update ClientMgr.proxyHostList and channels

@throws Exception
inlong-sdk/dataproxy-sdk/src/main/java/org/apache/inlong/sdk/dataproxy/config/ProxyConfigManager.java