subscriptions cleanup
continuous-integration/drone/push Build is failing

This commit is contained in:
yc
2026-04-21 20:07:35 +02:00
parent ac305eaae0
commit 9037a7b3c7
2 changed files with 16 additions and 16 deletions
+4 -4
View File
@@ -36,7 +36,7 @@ func NewRedisRouter(server *Identity, redisUrl string, password string, db int,
return &r return &r
} }
func (r *RedisRouter) Route(msg *meowlib.ToServerMessage) (*meowlib.FromServerMessage, error) { func (r *RedisRouter) Route(ctx context.Context, msg *meowlib.ToServerMessage) (*meowlib.FromServerMessage, error) {
var from_server *meowlib.FromServerMessage var from_server *meowlib.FromServerMessage
// update messages counter // update messages counter
err := r.Client.Incr("statistics:messages:total").Err() err := r.Client.Incr("statistics:messages:total").Err()
@@ -60,7 +60,7 @@ func (r *RedisRouter) Route(msg *meowlib.ToServerMessage) (*meowlib.FromServerMe
} }
if msg.Timeout > 0 && len(from_server.Chat) == 0 && from_server.Invitation == nil { if msg.Timeout > 0 && len(from_server.Chat) == 0 && from_server.Invitation == nil {
logger.Info().Msg("long poll, subscribing for messages") logger.Info().Msg("long poll, subscribing for messages")
from_server, err = r.subscribe(msg, int(msg.Timeout)) from_server, err = r.subscribe(ctx, msg, int(msg.Timeout))
if err != nil { if err != nil {
return nil, err return nil, err
} }
@@ -205,7 +205,7 @@ func (r *RedisRouter) checkForMessage(msg *meowlib.ToServerMessage) (*meowlib.Fr
} }
func (r *RedisRouter) subscribe(msg *meowlib.ToServerMessage, timeout int) (*meowlib.FromServerMessage, error) { func (r *RedisRouter) subscribe(reqCtx context.Context, msg *meowlib.ToServerMessage, timeout int) (*meowlib.FromServerMessage, error) {
if err := r.Client.Incr("statistics:messages:messagessubscription").Err(); err != nil { if err := r.Client.Incr("statistics:messages:messagessubscription").Err(); err != nil {
return nil, err return nil, err
} }
@@ -237,7 +237,7 @@ func (r *RedisRouter) subscribe(msg *meowlib.ToServerMessage, timeout int) (*meo
return fromServer, nil return fromServer, nil
} }
ctx, cancel := context.WithTimeout(r.Context, time.Duration(timeout)*time.Second) ctx, cancel := context.WithTimeout(reqCtx, time.Duration(timeout)*time.Second)
defer cancel() defer cancel()
ch := pubsub.Channel() ch := pubsub.Channel()
+12 -12
View File
@@ -220,7 +220,7 @@ func TestRouteDispatchesStoreAndCheck(t *testing.T) {
{Destination: dest, Payload: []byte("routed msg")}, {Destination: dest, Payload: []byte("routed msg")},
}, },
} }
resp, err := router.Route(storeReq) resp, err := router.Route(context.Background(),storeReq)
assert.NoError(t, err) assert.NoError(t, err)
assert.Equal(t, "route-store-uuid", resp.UuidAck) assert.Equal(t, "route-store-uuid", resp.UuidAck)
@@ -230,7 +230,7 @@ func TestRouteDispatchesStoreAndCheck(t *testing.T) {
{LookupKey: dest}, {LookupKey: dest},
}, },
} }
resp, err = router.Route(pullReq) resp, err = router.Route(context.Background(),pullReq)
assert.NoError(t, err) assert.NoError(t, err)
assert.Len(t, resp.Chat, 1) assert.Len(t, resp.Chat, 1)
assert.Equal(t, []byte("routed msg"), resp.Chat[0].Payload) assert.Equal(t, []byte("routed msg"), resp.Chat[0].Payload)
@@ -241,7 +241,7 @@ func TestRouteEmptyMessage(t *testing.T) {
router, mr := newTestRouter(t) router, mr := newTestRouter(t)
defer mr.Close() defer mr.Close()
resp, err := router.Route(&meowlib.ToServerMessage{}) resp, err := router.Route(context.Background(),&meowlib.ToServerMessage{})
assert.NoError(t, err) assert.NoError(t, err)
assert.Nil(t, resp) assert.Nil(t, resp)
} }
@@ -251,9 +251,9 @@ func TestRouteIncrementsTotalCounter(t *testing.T) {
router, mr := newTestRouter(t) router, mr := newTestRouter(t)
defer mr.Close() defer mr.Close()
router.Route(&meowlib.ToServerMessage{}) router.Route(context.Background(),&meowlib.ToServerMessage{})
router.Route(&meowlib.ToServerMessage{}) router.Route(context.Background(),&meowlib.ToServerMessage{})
router.Route(&meowlib.ToServerMessage{}) router.Route(context.Background(),&meowlib.ToServerMessage{})
val, err := router.Client.Get("statistics:messages:total").Int() val, err := router.Client.Get("statistics:messages:total").Int()
assert.NoError(t, err) assert.NoError(t, err)
@@ -554,7 +554,7 @@ func TestRouteMatriochka(t *testing.T) {
Data: []byte("wrapped"), Data: []byte("wrapped"),
}, },
} }
resp, err := router.Route(msg) resp, err := router.Route(context.Background(),msg)
assert.NoError(t, err) assert.NoError(t, err)
assert.Equal(t, "route-mtk", resp.UuidAck) assert.Equal(t, "route-mtk", resp.UuidAck)
@@ -578,7 +578,7 @@ func TestRouteInvitation(t *testing.T) {
ShortcodeLen: 6, ShortcodeLen: 6,
}, },
} }
resp, err := router.Route(msg) resp, err := router.Route(context.Background(),msg)
assert.NoError(t, err) assert.NoError(t, err)
assert.NotEmpty(t, resp.Invitation.Shortcode) assert.NotEmpty(t, resp.Invitation.Shortcode)
assert.Len(t, resp.Invitation.Shortcode, 6) assert.Len(t, resp.Invitation.Shortcode, 6)
@@ -595,7 +595,7 @@ func TestStatisticsCountersIncrement(t *testing.T) {
dest := "stats-dest" dest := "stats-dest"
// one store increments usermessages // one store increments usermessages
router.Route(&meowlib.ToServerMessage{ router.Route(context.Background(),&meowlib.ToServerMessage{
Messages: []*meowlib.PackedUserMessage{ Messages: []*meowlib.PackedUserMessage{
{Destination: dest, Payload: []byte("x")}, {Destination: dest, Payload: []byte("x")},
}, },
@@ -604,7 +604,7 @@ func TestStatisticsCountersIncrement(t *testing.T) {
assert.Equal(t, 1, val) assert.Equal(t, 1, val)
// one pull increments messagelookups // one pull increments messagelookups
router.Route(&meowlib.ToServerMessage{ router.Route(context.Background(),&meowlib.ToServerMessage{
PullRequest: []*meowlib.ConversationRequest{ PullRequest: []*meowlib.ConversationRequest{
{LookupKey: dest}, {LookupKey: dest},
}, },
@@ -613,14 +613,14 @@ func TestStatisticsCountersIncrement(t *testing.T) {
assert.Equal(t, 1, val) assert.Equal(t, 1, val)
// one matriochka increments matriochka counter // one matriochka increments matriochka counter
router.Route(&meowlib.ToServerMessage{ router.Route(context.Background(),&meowlib.ToServerMessage{
MatriochkaMessage: &meowlib.Matriochka{Data: []byte("m")}, MatriochkaMessage: &meowlib.Matriochka{Data: []byte("m")},
}) })
val, _ = router.Client.Get("statistics:messages:matriochka").Int() val, _ = router.Client.Get("statistics:messages:matriochka").Int()
assert.Equal(t, 1, val) assert.Equal(t, 1, val)
// one invitation increments invitation counter // one invitation increments invitation counter
router.Route(&meowlib.ToServerMessage{ router.Route(context.Background(),&meowlib.ToServerMessage{
Invitation: &meowlib.Invitation{ Invitation: &meowlib.Invitation{
Step: 1, Step: 1,
Payload: []byte("i"), Payload: []byte("i"),