MCPcopy Index your code
hub / github.com/koding/kite / RegisterHTTPForever

Method RegisterHTTPForever

heartbeat.go:90–116  ·  view source on GitHub ↗

RegisterHTTPForever is just like RegisterHTTP however it first tries to register forever until a response from kontrol is received. It's useful to use it during app initializations. After the registration a reconnect is automatically handled inside the RegisterHTTP method.

(kiteURL *url.URL)

Source from the content-addressed store, hash-verified

88// use it during app initializations. After the registration a reconnect is
89// automatically handled inside the RegisterHTTP method.
90func (k *Kite) RegisterHTTPForever(kiteURL *url.URL) {
91 // Create the httpBackoffRegister that RegisterHTTPForever will
92 // use to backoff repeated register attempts.
93 httpRegisterBackOff := backoff.NewExponentialBackOff()
94 httpRegisterBackOff.InitialInterval = 30 * time.Second
95 httpRegisterBackOff.MaxInterval = 5 * time.Minute
96 httpRegisterBackOff.Multiplier = 1.7
97 httpRegisterBackOff.MaxElapsedTime = 0
98
99 register := func() error {
100 _, err := k.RegisterHTTP(kiteURL)
101 if err != nil {
102 k.Log.Error("Cannot register to Kontrol: %s Will retry after %d seconds",
103 err,
104 httpRegisterBackOff.NextBackOff()/time.Second)
105 return err
106 }
107
108 return nil
109 }
110
111 // this will retry register forever
112 err := backoff.Retry(register, httpRegisterBackOff)
113 if err != nil {
114 k.Log.Error("BackOff stopped retrying with Error '%s'", err)
115 }
116}
117
118func (k *Kite) getKontrolPath(path string) string {
119 heartbeatURL := k.Config.KontrolURL + "/" + path

Callers 2

sendHeartbeatsMethod · 0.95
TestMultipleRegisterFunction · 0.80

Calls 3

RegisterHTTPMethod · 0.95
NextBackOffMethod · 0.80
ErrorMethod · 0.65

Tested by 1

TestMultipleRegisterFunction · 0.64