Files
cloud-services/services/gateway/server/server_redis.go

61 lines
1.2 KiB
Go

package server
import (
"context"
"errors"
"io"
"time"
"gateway/services"
"fiskerinc.com/modules/logger"
)
func logRedisErr(err error) {
if errors.Is(err, io.EOF) {
logger.Warn().Err(err).Send()
} else {
logger.Error().Err(err).Send()
}
}
// StartRedisQueue intiates Redis queue listener
func StartRedisQueue(ctx context.Context) {
logger.Info().Msg("initializing redis queues")
defer func() {
if err := recover(); err != nil {
logger.Error().Msgf("PanicRedis %v", err)
}
}()
for {
err := services.GetRedisQueues().Listen(ctx, services.GetConnections().SendMsgToClient)
for err != nil {
logRedisErr(err)
err = services.GetRedisQueues().Restart()
time.Sleep(time.Second * 10)
}
}
}
// StartRedisSubscriptions initiates Redis subscription listener
func StartRedisSubscriptions(ctx context.Context) {
logger.Info().Msg("initializing redis subscriptions")
defer func() {
if err := recover(); err != nil {
logger.Error().Msgf("PanicRedis %v", err)
}
}()
for {
err := services.GetRedisPubSub().Listen(ctx, services.GetConnections().SendMsgToClient)
for err != nil {
logRedisErr(err)
err = services.GetRedisPubSub().Restart()
time.Sleep(time.Second * 10)
}
}
}