fix(worker): refactor and fix issues of worker

This commit is contained in:
hexxa 2021-09-12 12:45:03 +08:00 committed by Hexxa
parent 8518072c7e
commit 4a5c68df17
13 changed files with 194 additions and 86 deletions

View file

@ -34,7 +34,6 @@ import (
"github.com/ihexxa/quickshare/src/kvstore"
"github.com/ihexxa/quickshare/src/kvstore/boltdbpvd"
"github.com/ihexxa/quickshare/src/userstore"
"github.com/ihexxa/quickshare/src/worker"
"github.com/ihexxa/quickshare/src/worker/localworker"
)
@ -42,7 +41,6 @@ type Server struct {
server *http.Server
cfg gocfg.ICfg
deps *depidx.Deps
workers worker.IWorkerPool
signalChan chan os.Signal
}
@ -52,9 +50,8 @@ func NewServer(cfg gocfg.ICfg) (*Server, error) {
}
deps := initDeps(cfg)
workers := localworker.NewWorkerPool(1024, 5000, 2, deps)
router := gin.Default()
router, err := initHandlers(router, cfg, deps, workers)
router, err := initHandlers(router, cfg, deps)
if err != nil {
return nil, err
}
@ -71,7 +68,6 @@ func NewServer(cfg gocfg.ICfg) (*Server, error) {
server: srv,
deps: deps,
cfg: cfg,
workers: workers,
}, nil
}
@ -132,10 +128,19 @@ func initDeps(cfg gocfg.ICfg) *depidx.Deps {
deps.SetLog(logger)
deps.SetLimiter(limiter)
queueSize := cfg.GrabInt("Workers.QueueSize")
sleepCyc := cfg.GrabInt("Workers.SleepCyc")
workerCount := cfg.GrabInt("Workers.WorkerCount")
fmt.Println(queueSize, sleepCyc, workerCount)
workers := localworker.NewWorkerPool(queueSize, sleepCyc, workerCount, logger)
workers.Start()
deps.SetWorkers(workers)
return deps
}
func initHandlers(router *gin.Engine, cfg gocfg.ICfg, deps *depidx.Deps, workers worker.IWorkerPool) (*gin.Engine, error) {
func initHandlers(router *gin.Engine, cfg gocfg.ICfg, deps *depidx.Deps) (*gin.Engine, error) {
// handlers
userHdrs, err := multiusers.NewMultiUsersSvc(cfg, deps)
if err != nil {
@ -170,7 +175,7 @@ func initHandlers(router *gin.Engine, cfg gocfg.ICfg, deps *depidx.Deps, workers
deps.Log().Infof("user (%s) is created\n", adminName)
}
fileHdrs, err := fileshdr.NewFileHandlers(cfg, deps, workers)
fileHdrs, err := fileshdr.NewFileHandlers(cfg, deps)
if err != nil {
return nil, err
}
@ -298,7 +303,7 @@ func (s *Server) Start() error {
func (s *Server) Shutdown() error {
// TODO: add timeout
s.workers.Stop()
s.deps.Workers().Stop()
s.deps.Log().Sync()
return s.server.Shutdown(context.Background())
}