Open 1995chen opened 2 years ago
def config_changed_handler(entry: Dict[str, Any]) -> Any: logger.debug(f"get entry: {entry}") old_config: Config = inject.instance(Config) # 获取阿波罗实例 old_apollo_client: ApolloClient = inject.instance(ApolloClient) # 重新绑定配置 inject.clear_and_configure(bind, bind_in_runtime=False) # 立即获取apollo实例 new_apollo_client: ApolloClient = inject.instance(ApolloClient) new_config: Config = inject.instance(Config) logger.error( f"old_config-{id(old_config)} is {old_config}\n" f"new_config-{id(new_config)} is {new_config}\n" f"old_apollo_client-{id(old_apollo_client)} is {old_apollo_client}\n" f"new_apollo_client-{id(new_apollo_client)} is {new_apollo_client}\n" ) # 停止当前线程 old_apollo_client.stop() def init_apollo_client() -> ApolloClient: from app.handlers.apollo import config_changed_handler # 获取阿波罗配置中心的环境变量 apollo_config: ApolloClient = ApolloClient( app_id=Config.APOLLO_APP_ID, config_server_url=Config.APOLLO_CONFIG_SERVER_URL ) apollo_config.set_config_changed_handler(config_changed_handler) apollo_config.start() return apollo_config
i use gunicorn to run the app, i can not get the new instance when inject reconfigure in api
i use gunicorn to run the app, i can not get the new instance when inject reconfigure in api