This is an automated email from the ASF dual-hosted git repository. peacewong pushed a commit to branch dev-1.3.0 in repository https://gitbox.apache.org/repos/asf/incubator-linkis.git
commit 9b6c6bc5b78924dc5a025e24a16d65c8f5743fa0 Author: Jack Xu <[email protected]> AuthorDate: Mon Aug 22 18:27:13 2022 +0800 fix: fix label register --- .../rm/external/yarn/YarnResourceRequester.scala | 6 ++-- .../label/client/EurekaInstanceLabelClient.scala | 42 ++++++++++++---------- 2 files changed, 26 insertions(+), 22 deletions(-) diff --git a/linkis-computation-governance/linkis-manager/linkis-application-manager/src/main/scala/org/apache/linkis/manager/rm/external/yarn/YarnResourceRequester.scala b/linkis-computation-governance/linkis-manager/linkis-application-manager/src/main/scala/org/apache/linkis/manager/rm/external/yarn/YarnResourceRequester.scala index f93c8550b..235d1dfaa 100644 --- a/linkis-computation-governance/linkis-manager/linkis-application-manager/src/main/scala/org/apache/linkis/manager/rm/external/yarn/YarnResourceRequester.scala +++ b/linkis-computation-governance/linkis-manager/linkis-application-manager/src/main/scala/org/apache/linkis/manager/rm/external/yarn/YarnResourceRequester.scala @@ -130,8 +130,7 @@ class YarnResourceRequester extends ExternalResourceRequester with Logging { .exists(_._2.asInstanceOf[JString].values == realQueueName) ) { Some(queues) - } - else { + } else { val childQueues = queue.find(_._1 == "childQueues") if (childQueues.isEmpty) None else getQueue(childQueues.map(_._2).get) @@ -168,8 +167,7 @@ class YarnResourceRequester extends ExternalResourceRequester with Logging { .exists(_._2.asInstanceOf[JString].values == realQueueName) ) { return Some(queues) - } - else if ((queues \ "queues").toOption.nonEmpty) { + } else if ((queues \ "queues").toOption.nonEmpty) { val matchQueue = getQueueOfCapacity(getChildQueuesOfCapacity(queues)) if (matchQueue.nonEmpty) return matchQueue } diff --git a/linkis-public-enhancements/linkis-instance-label/linkis-instance-label-client/src/main/scala/org/apache/linkis/instance/label/client/EurekaInstanceLabelClient.scala b/linkis-public-enhancements/linkis-instance-label/linkis-instance-label-client/src/main/scala/org/apache/linkis/instance/label/client/EurekaInstanceLabelClient.scala index 91b7f262a..89735aaeb 100644 --- a/linkis-public-enhancements/linkis-instance-label/linkis-instance-label-client/src/main/scala/org/apache/linkis/instance/label/client/EurekaInstanceLabelClient.scala +++ b/linkis-public-enhancements/linkis-instance-label/linkis-instance-label-client/src/main/scala/org/apache/linkis/instance/label/client/EurekaInstanceLabelClient.scala @@ -25,13 +25,15 @@ import org.apache.linkis.rpc.Sender import org.apache.commons.lang3.StringUtils import org.springframework.beans.factory.annotation.Autowired -import org.springframework.boot.context.event.ApplicationStartedEvent +import org.springframework.boot.availability.{ + AvailabilityChangeEvent, + AvailabilityState, + ReadinessState +} import org.springframework.cloud.client.serviceregistry.Registration import org.springframework.context.event.{ContextClosedEvent, EventListener} import org.springframework.stereotype.Component -import javax.annotation.PostConstruct - import java.util @Component @@ -40,21 +42,25 @@ class EurekaInstanceLabelClient extends Logging { @Autowired private var registration: Registration = _ - @EventListener(Array(classOf[ApplicationStartedEvent])) - def init(applicationStartedEvent: ApplicationStartedEvent): Unit = { - logger.info("EurekaInstanceLabelClient init") - val metadata = registration.getMetadata - if ( - null != metadata && metadata.containsKey(LabelKeyConstant.ROUTE_KEY) && StringUtils - .isNoneBlank(metadata.get(LabelKeyConstant.ROUTE_KEY)) - ) { - logger.info(s"Start to register label for instance $metadata") - val labels = new util.HashMap[String, Object]() - labels.put(LabelKeyConstant.ROUTE_KEY, metadata.get(LabelKeyConstant.ROUTE_KEY)) - val insLabelRefreshRequest = new InsLabelRefreshRequest - insLabelRefreshRequest.setLabels(labels) - insLabelRefreshRequest.setServiceInstance(Sender.getThisServiceInstance) - InstanceLabelClient.getInstance.refreshLabelsToInstance(insLabelRefreshRequest) + @EventListener + def init(availabilityChangeEvent: AvailabilityChangeEvent[AvailabilityState]): Unit = { + availabilityChangeEvent.getState match { + case state: ReadinessState if state.equals(ReadinessState.ACCEPTING_TRAFFIC) => + logger.info("EurekaInstanceLabelClient init") + val metadata = registration.getMetadata + if ( + null != metadata && metadata.containsKey(LabelKeyConstant.ROUTE_KEY) && StringUtils + .isNoneBlank(metadata.get(LabelKeyConstant.ROUTE_KEY)) + ) { + logger.info(s"Start to register label for instance $metadata") + val labels = new util.HashMap[String, Object]() + labels.put(LabelKeyConstant.ROUTE_KEY, metadata.get(LabelKeyConstant.ROUTE_KEY)) + val insLabelRefreshRequest = new InsLabelRefreshRequest + insLabelRefreshRequest.setLabels(labels) + insLabelRefreshRequest.setServiceInstance(Sender.getThisServiceInstance) + InstanceLabelClient.getInstance.refreshLabelsToInstance(insLabelRefreshRequest) + } + case _ => } } --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
