MCPcopy Create free account
hub / github.com/cloudbase/garm / loop

Method loop

util/github/scalesets/message_sessions.go:71–100  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

69}
70
71func (m *MessageSession) loop() {
72 slog.DebugContext(m.ctx, "starting message session refresh loop", "session_id", m.session.SessionID.String())
73 timer := time.NewTicker(1 * time.Minute)
74 defer timer.Stop()
75 defer m.Close()
76
77 if m.closed {
78 slog.DebugContext(m.ctx, "message session refresh loop closed")
79 return
80 }
81 for {
82 select {
83 case <-m.ctx.Done():
84 slog.DebugContext(m.ctx, "message session refresh loop context done")
85 return
86 case <-m.done:
87 slog.DebugContext(m.ctx, "message session refresh loop done")
88 return
89 case <-timer.C:
90 if err := m.maybeRefreshToken(m.ctx); err != nil {
91 // We endlessly retry. If it's a transient error, it should eventually
92 // work, if it's credentials issues, users can update them.
93 slog.With(slog.Any("error", err)).ErrorContext(m.ctx, "failed to refresh message queue token")
94 m.lastErr = err
95 continue
96 }
97 m.lastErr = nil
98 }
99 }
100}
101
102func (m *MessageSession) SessionsRelativeURL() (string, error) {
103 if m.session == nil {

Callers 1

CreateMessageSessionMethod · 0.95

Calls 5

CloseMethod · 0.95
maybeRefreshTokenMethod · 0.95
StopMethod · 0.65
StringMethod · 0.45
DoneMethod · 0.45

Tested by

no test coverage detected