in plugins/core/reporter/grpc/grpc.go [481:517]
func (r *gRPCReporter) check() {
if r.checkInterval < 0 || r.conn == nil || r.managementClient == nil {
return
}
go func() {
instancePropertiesSubmitted := false
for {
switch r.updateConnectionStatus() {
case reporter.ConnectionStatusShutdown:
break
case reporter.ConnectionStatusDisconnect:
time.Sleep(r.checkInterval)
continue
}
if !instancePropertiesSubmitted {
err := r.reportInstanceProperties()
if err != nil {
r.logger.Errorf("report serviceInstance properties error %v", err)
time.Sleep(r.checkInterval)
continue
}
instancePropertiesSubmitted = true
}
_, err := r.managementClient.KeepAlive(metadata.NewOutgoingContext(context.Background(), r.md), &managementv3.InstancePingPkg{
Service: r.entity.ServiceName,
ServiceInstance: r.entity.ServiceInstanceName,
})
if err != nil {
r.logger.Errorf("send keep alive signal error %v", err)
}
time.Sleep(r.checkInterval)
}
}()
}