feat: separate redis addr and port from config

This commit is contained in:
Paul Pan 2023-12-18 23:43:27 +08:00
parent 596a7219cf
commit a9106ed363
Signed by: Paul
GPG Key ID: D639BDF5BA578AF4
9 changed files with 20 additions and 15 deletions

View File

@ -7,7 +7,8 @@ WebServer:
Redis: Redis:
Db: ${REDIS_DB} Db: ${REDIS_DB}
QueueDb: ${REDIS_QUEUE_DB} QueueDb: ${REDIS_QUEUE_DB}
Address: ${REDIS_ADDRESS_PORT} Address: ${REDIS_ADDRESS}
Port: ${REDIS_PORT}
Password: ${REDIS_PASSWORD} Password: ${REDIS_PASSWORD}
Database: Database:

View File

@ -7,7 +7,7 @@ services:
interval: 5s interval: 5s
command: web command: web
environment: environment:
- REDIS_ADDRESS_PORT=cache:6379 - REDIS_ADDRESS=cache
- DATABASE_HOST=db - DATABASE_HOST=db
- DATABASE_USER=dev - DATABASE_USER=dev
- DATABASE_PASSWORD=password - DATABASE_PASSWORD=password
@ -44,7 +44,7 @@ services:
devices: devices:
- "/dev/fuse" - "/dev/fuse"
environment: environment:
- REDIS_ADDRESS_PORT=cache:6379 - REDIS_ADDRESS=cache
- STORAGE_ENDPOINT=storage:9000 - STORAGE_ENDPOINT=storage:9000
- STORAGE_ACCESS_KEY=access_key - STORAGE_ACCESS_KEY=access_key
- STORAGE_SECRET_KEY=secret_key - STORAGE_SECRET_KEY=secret_key

View File

@ -41,7 +41,8 @@ check_env "WEB_SERVER_JWT_EXPIRE_HOUR" 12 false
check_env "REDIS_DB" 0 false check_env "REDIS_DB" 0 false
check_env "REDIS_QUEUE_DB" 1 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 "REDIS_PASSWORD" "" true
check_env "DATABASE_HOST" "postgres" true check_env "DATABASE_HOST" "postgres" true

View File

@ -33,14 +33,7 @@ func (h *handler) Create(c *gin.Context) {
} }
uid := claim.(*model.Claim).UID uid := claim.(*model.Claim).UID
role := claim.(*model.Claim).Role 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 // guest can not submit
if role < model.RoleGeneral { if role < model.RoleGeneral {
@ -48,6 +41,12 @@ func (h *handler) Create(c *gin.Context) {
return return
} }
req := new(createRequest)
if err := c.ShouldBind(req); err != nil {
e.Pong(c, e.InvalidParameter, err.Error())
return
}
createData := &submission.CreateData{ createData := &submission.CreateData{
ProblemID: req.Pid, ProblemID: req.Pid,
UserID: uid, UserID: uid,

View File

@ -1,6 +1,7 @@
package runner package runner
import ( import (
"fmt"
"git.0x7f.app/WOJ/woj-server/internal/api/runner" "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/config"
"git.0x7f.app/WOJ/woj-server/internal/misc/log" "git.0x7f.app/WOJ/woj-server/internal/misc/log"
@ -28,7 +29,7 @@ func RunRunner(i *do.Injector) error {
srv := asynq.NewServer( srv := asynq.NewServer(
asynq.RedisClientOpt{ asynq.RedisClientOpt{
Addr: conf.Redis.Address, Addr: fmt.Sprintf("%s:%d", conf.Redis.Address, conf.Redis.Port),
Password: conf.Redis.Password, Password: conf.Redis.Password,
DB: conf.Redis.QueueDb, DB: conf.Redis.QueueDb,
}, },

View File

@ -53,7 +53,7 @@ func RunServer(i *do.Injector) error {
} }
queueSrv := asynq.NewServer( queueSrv := asynq.NewServer(
asynq.RedisClientOpt{ asynq.RedisClientOpt{
Addr: conf.Redis.Address, Addr: fmt.Sprintf("%s:%d", conf.Redis.Address, conf.Redis.Port),
Password: conf.Redis.Password, Password: conf.Redis.Password,
DB: conf.Redis.QueueDb, DB: conf.Redis.QueueDb,
}, },

View File

@ -11,6 +11,7 @@ type ConfigRedis struct {
Db int `yaml:"Db"` Db int `yaml:"Db"`
QueueDb int `yaml:"QueueDb"` QueueDb int `yaml:"QueueDb"`
Address string `yaml:"Address"` Address string `yaml:"Address"`
Port int `yaml:"Port"`
Password string `yaml:"Password"` Password string `yaml:"Password"`
} }

View File

@ -2,6 +2,7 @@ package cache
import ( import (
"context" "context"
"fmt"
"git.0x7f.app/WOJ/woj-server/internal/misc/config" "git.0x7f.app/WOJ/woj-server/internal/misc/config"
"git.0x7f.app/WOJ/woj-server/internal/misc/log" "git.0x7f.app/WOJ/woj-server/internal/misc/log"
"github.com/redis/go-redis/v9" "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") srv.log = do.MustInvoke[log.Service](i).GetLogger("redis")
conf := do.MustInvoke[config.Service](i).GetConfig() 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 return srv, srv.err
} }

View File

@ -2,6 +2,7 @@ package task
import ( import (
"errors" "errors"
"fmt"
"git.0x7f.app/WOJ/woj-server/internal/e" "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/config"
"git.0x7f.app/WOJ/woj-server/internal/misc/log" "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() conf := do.MustInvoke[config.Service](i).GetConfig()
redisOpt := asynq.RedisClientOpt{ redisOpt := asynq.RedisClientOpt{
Addr: conf.Redis.Address, Addr: fmt.Sprintf("%s:%d", conf.Redis.Address, conf.Redis.Port),
Password: conf.Redis.Password, Password: conf.Redis.Password,
DB: conf.Redis.QueueDb, DB: conf.Redis.QueueDb,
} }