diff --git a/worker/worker.go b/worker/worker.go index 0ed211f..fac4baa 100644 --- a/worker/worker.go +++ b/worker/worker.go @@ -402,8 +402,17 @@ func (w *Worker) registorWorker() { for _, root := range w.cfg.Manager.APIBaseList() { url := fmt.Sprintf("%s/workers", root) logger.Debugf("register on manager url: %s", url) - if _, err := PostJSON(url, msg, w.httpClient); err != nil { - logger.Errorf("Failed to register worker") + for retry := 10; retry > 0; { + if _, err := PostJSON(url, msg, w.httpClient); err != nil { + logger.Errorf("Failed to register worker") + retry-- + if retry > 0 { + time.Sleep(1 * time.Second) + logger.Noticef("Retrying... (%d)", retry) + } + } else { + break + } } } }