fix dial error when clean up a dead shim

Signed-off-by: lifubang <lifubang@acmcoder.com>
This commit is contained in:
lifubang
2020-03-12 08:24:29 +08:00
parent c6851ace61
commit 488d6194f2
3 changed files with 44 additions and 18 deletions

View File

@@ -128,9 +128,12 @@ func (l *RemoteEventsPublisher) Publish(ctx context.Context, topic string, event
}
func (l *RemoteEventsPublisher) forwardRequest(ctx context.Context, req *v1.ForwardRequest) error {
_, err := l.client.EventsService().Forward(ctx, req)
service, err := l.client.EventsService()
if err == nil {
return nil
_, err = service.Forward(ctx, req)
if err == nil {
return nil
}
}
if err != ttrpc.ErrClosed {
@@ -138,11 +141,15 @@ func (l *RemoteEventsPublisher) forwardRequest(ctx context.Context, req *v1.Forw
}
// Reconnect and retry request
if err := l.client.Reconnect(); err != nil {
if err = l.client.Reconnect(); err != nil {
return err
}
if _, err := l.client.EventsService().Forward(ctx, req); err != nil {
service, err = l.client.EventsService()
if err != nil {
return err
}
if _, err = service.Forward(ctx, req); err != nil {
return err
}