Skip to content

Commit cdff989

Browse files
committed
Reduce message queue from double-map to a single list.
1 parent 14d1435 commit cdff989

File tree

9 files changed

+16
-329
lines changed

9 files changed

+16
-329
lines changed

cmd/state-svc/internal/messages/message.go

Lines changed: 0 additions & 14 deletions
This file was deleted.

cmd/state-svc/internal/messages/queue.go

Lines changed: 0 additions & 60 deletions
This file was deleted.

cmd/state-svc/internal/messages/queue_test.go

Lines changed: 0 additions & 169 deletions
This file was deleted.

cmd/state-svc/internal/resolver/resolver.go

Lines changed: 14 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ import (
1212

1313
"github.com/ActiveState/cli/cmd/state-svc/internal/graphqltypes"
1414
"github.com/ActiveState/cli/cmd/state-svc/internal/hash"
15-
"github.com/ActiveState/cli/cmd/state-svc/internal/messages"
1615
"github.com/ActiveState/cli/cmd/state-svc/internal/notifications"
1716
"github.com/ActiveState/cli/cmd/state-svc/internal/rtwatcher"
1817
genserver "github.com/ActiveState/cli/cmd/state-svc/internal/server/generated"
@@ -27,7 +26,7 @@ import (
2726
"github.com/ActiveState/cli/internal/locale"
2827
"github.com/ActiveState/cli/internal/logging"
2928
configMediator "github.com/ActiveState/cli/internal/mediators/config"
30-
msgs "github.com/ActiveState/cli/internal/messages"
29+
"github.com/ActiveState/cli/internal/messages"
3130
"github.com/ActiveState/cli/internal/poller"
3231
"github.com/ActiveState/cli/internal/rtutils/ptr"
3332
"github.com/ActiveState/cli/internal/runbits/panics"
@@ -37,10 +36,14 @@ import (
3736
"github.com/patrickmn/go-cache"
3837
)
3938

39+
type messageQueue struct {
40+
messages []*graph.Message
41+
}
42+
4043
type Resolver struct {
4144
cfg *config.Instance
4245
notifications *notifications.Notifications
43-
messages *messages.Queue
46+
messages *messageQueue
4447
updatePoller *poller.Poller
4548
authPoller *poller.Poller
4649
projectIDCache *projectcache.ID
@@ -60,7 +63,7 @@ func New(cfg *config.Instance, an *sync.Client, auth *authentication.Auth) (*Res
6063
return nil, errs.Wrap(err, "Could not initialize messages")
6164
}
6265

63-
msg := messages.NewQueue()
66+
msg := &messageQueue{make([]*graph.Message, 0)}
6467
upchecker := updater.NewDefaultChecker(cfg, an)
6568
pollUpdate := poller.New(1*time.Hour, func() (interface{}, error) {
6669
defer func() {
@@ -91,7 +94,10 @@ func New(cfg *config.Instance, an *sync.Client, auth *authentication.Auth) (*Res
9194
var invalidTokenErr *authentication.ErrInvalidToken
9295
if errors.As(err, &invalidTokenErr) {
9396
logging.Debug("Queuing invalid API token error")
94-
msg.Queue(msgs.TopicErrorAuthToken, locale.Tl("err_invalid_token_try_again", "Invalid API token. Please check your API token and try again."))
97+
msg.messages = append(msg.messages, &graph.Message{
98+
Topic: messages.TopicErrorAuthToken,
99+
Message: locale.Tl("err_invalid_token_try_again", "Invalid API token. Please check your API token and try again."),
100+
})
95101
} else {
96102
logging.Warning("Could not sync authenticated state: %s", err.Error())
97103
}
@@ -273,25 +279,10 @@ func (r *Resolver) CheckNotifications(ctx context.Context, command string, flags
273279
}
274280

275281
func (r *Resolver) CheckMessages(ctx context.Context) ([]*graph.Message, error) {
282+
defer func() { panics.LogAndPanic(recover(), debug.Stack()) }()
276283
logging.Debug("Check messages resolver")
277-
var messages []*graph.Message
278-
var err error
279-
280-
defer func() {
281-
var sentMessageIDs []string
282-
for _, msg := range messages {
283-
sentMessageIDs = append(sentMessageIDs, msg.ID)
284-
}
285-
if err := r.messages.Dequeue(sentMessageIDs); err != nil {
286-
logging.Error("Could not dequeue messages: %s", errs.JoinMessage(err))
287-
}
288-
panics.LogAndPanic(recover(), debug.Stack())
289-
}()
290-
291-
messages, err = r.messages.Messages()
292-
if err != nil {
293-
return nil, errs.Wrap(err, "Could not get messages")
294-
}
284+
messages := r.messages.messages
285+
r.messages.messages = r.messages.messages[:0] // clear queue
295286
return messages, nil
296287
}
297288

0 commit comments

Comments
 (0)