From a9106ed3631f723436cb82b45cd388ac36c55ef1 Mon Sep 17 00:00:00 2001 From: Paul Pan Date: Mon, 18 Dec 2023 23:43:27 +0800 Subject: [PATCH] feat: separate redis addr and port from config --- config.docker.yaml | 3 ++- docker-compose.yml | 4 ++-- docker-entrypoint.sh | 3 ++- internal/api/submission/create.go | 13 ++++++------- internal/app/runner/runner.go | 3 ++- internal/app/server/server.go | 2 +- internal/model/config.go | 1 + internal/repo/cache/redis.go | 3 ++- internal/service/task/service.go | 3 ++- 9 files changed, 20 insertions(+), 15 deletions(-) diff --git a/config.docker.yaml b/config.docker.yaml index 9369611..7191a4a 100644 --- a/config.docker.yaml +++ b/config.docker.yaml @@ -7,7 +7,8 @@ WebServer: Redis: Db: ${REDIS_DB} QueueDb: ${REDIS_QUEUE_DB} - Address: ${REDIS_ADDRESS_PORT} + Address: ${REDIS_ADDRESS} + Port: ${REDIS_PORT} Password: ${REDIS_PASSWORD} Database: diff --git a/docker-compose.yml b/docker-compose.yml index 98b43dc..c68eb99 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -7,7 +7,7 @@ services: interval: 5s command: web environment: - - REDIS_ADDRESS_PORT=cache:6379 + - REDIS_ADDRESS=cache - DATABASE_HOST=db - DATABASE_USER=dev - DATABASE_PASSWORD=password @@ -44,7 +44,7 @@ services: devices: - "/dev/fuse" environment: - - REDIS_ADDRESS_PORT=cache:6379 + - REDIS_ADDRESS=cache - STORAGE_ENDPOINT=storage:9000 - STORAGE_ACCESS_KEY=access_key - STORAGE_SECRET_KEY=secret_key diff --git a/docker-entrypoint.sh b/docker-entrypoint.sh index e950e71..69d048e 100755 --- a/docker-entrypoint.sh +++ b/docker-entrypoint.sh @@ -41,7 +41,8 @@ check_env "WEB_SERVER_JWT_EXPIRE_HOUR" 12 false check_env "REDIS_DB" 0 false check_env "REDIS_QUEUE_DB" 1 false -check_env "REDIS_ADDRESS_PORT" "redis:6379" true +check_env "REDIS_ADDRESS" "redis" true +check_env "REDIS_PORT" 6379 false check_env "REDIS_PASSWORD" "" true check_env "DATABASE_HOST" "postgres" true diff --git a/internal/api/submission/create.go b/internal/api/submission/create.go index c55e50b..e4cabd5 100644 --- a/internal/api/submission/create.go +++ b/internal/api/submission/create.go @@ -33,14 +33,7 @@ func (h *handler) Create(c *gin.Context) { } uid := claim.(*model.Claim).UID - role := claim.(*model.Claim).Role - req := new(createRequest) - - if err := c.ShouldBind(req); err != nil { - e.Pong(c, e.InvalidParameter, err.Error()) - return - } // guest can not submit if role < model.RoleGeneral { @@ -48,6 +41,12 @@ func (h *handler) Create(c *gin.Context) { return } + req := new(createRequest) + if err := c.ShouldBind(req); err != nil { + e.Pong(c, e.InvalidParameter, err.Error()) + return + } + createData := &submission.CreateData{ ProblemID: req.Pid, UserID: uid, diff --git a/internal/app/runner/runner.go b/internal/app/runner/runner.go index 09436e4..4884196 100644 --- a/internal/app/runner/runner.go +++ b/internal/app/runner/runner.go @@ -1,6 +1,7 @@ package runner import ( + "fmt" "git.0x7f.app/WOJ/woj-server/internal/api/runner" "git.0x7f.app/WOJ/woj-server/internal/misc/config" "git.0x7f.app/WOJ/woj-server/internal/misc/log" @@ -28,7 +29,7 @@ func RunRunner(i *do.Injector) error { srv := asynq.NewServer( asynq.RedisClientOpt{ - Addr: conf.Redis.Address, + Addr: fmt.Sprintf("%s:%d", conf.Redis.Address, conf.Redis.Port), Password: conf.Redis.Password, DB: conf.Redis.QueueDb, }, diff --git a/internal/app/server/server.go b/internal/app/server/server.go index 3ed42c8..0679a36 100644 --- a/internal/app/server/server.go +++ b/internal/app/server/server.go @@ -53,7 +53,7 @@ func RunServer(i *do.Injector) error { } queueSrv := asynq.NewServer( asynq.RedisClientOpt{ - Addr: conf.Redis.Address, + Addr: fmt.Sprintf("%s:%d", conf.Redis.Address, conf.Redis.Port), Password: conf.Redis.Password, DB: conf.Redis.QueueDb, }, diff --git a/internal/model/config.go b/internal/model/config.go index 09712a1..7027ab3 100644 --- a/internal/model/config.go +++ b/internal/model/config.go @@ -11,6 +11,7 @@ type ConfigRedis struct { Db int `yaml:"Db"` QueueDb int `yaml:"QueueDb"` Address string `yaml:"Address"` + Port int `yaml:"Port"` Password string `yaml:"Password"` } diff --git a/internal/repo/cache/redis.go b/internal/repo/cache/redis.go index 935452a..a18f748 100644 --- a/internal/repo/cache/redis.go +++ b/internal/repo/cache/redis.go @@ -2,6 +2,7 @@ package cache import ( "context" + "fmt" "git.0x7f.app/WOJ/woj-server/internal/misc/config" "git.0x7f.app/WOJ/woj-server/internal/misc/log" "github.com/redis/go-redis/v9" @@ -22,7 +23,7 @@ func NewService(i *do.Injector) (Service, error) { srv.log = do.MustInvoke[log.Service](i).GetLogger("redis") conf := do.MustInvoke[config.Service](i).GetConfig() - srv.setup(conf.Redis.Address, conf.Redis.Password, conf.Redis.Db) + srv.setup(fmt.Sprintf("%s:%d", conf.Redis.Address, conf.Redis.Port), conf.Redis.Password, conf.Redis.Db) return srv, srv.err } diff --git a/internal/service/task/service.go b/internal/service/task/service.go index 91838fc..a08e689 100644 --- a/internal/service/task/service.go +++ b/internal/service/task/service.go @@ -2,6 +2,7 @@ package task import ( "errors" + "fmt" "git.0x7f.app/WOJ/woj-server/internal/e" "git.0x7f.app/WOJ/woj-server/internal/misc/config" "git.0x7f.app/WOJ/woj-server/internal/misc/log" @@ -29,7 +30,7 @@ func NewService(i *do.Injector) (Service, error) { conf := do.MustInvoke[config.Service](i).GetConfig() redisOpt := asynq.RedisClientOpt{ - Addr: conf.Redis.Address, + Addr: fmt.Sprintf("%s:%d", conf.Redis.Address, conf.Redis.Port), Password: conf.Redis.Password, DB: conf.Redis.QueueDb, }