diff options
Diffstat (limited to 'plugins/http')
-rw-r--r-- | plugins/http/config/http.go | 2 | ||||
-rw-r--r-- | plugins/http/plugin.go | 35 |
2 files changed, 17 insertions, 20 deletions
diff --git a/plugins/http/config/http.go b/plugins/http/config/http.go index bfbc1af6..022476e2 100644 --- a/plugins/http/config/http.go +++ b/plugins/http/config/http.go @@ -73,7 +73,7 @@ func (c *HTTP) InitDefaults() error { c.Pool = &poolImpl.Config{ Debug: false, NumWorkers: uint64(runtime.NumCPU()), - MaxJobs: 1000, + MaxJobs: 0, AllocateTimeout: time.Second * 60, DestroyTimeout: time.Second * 60, Supervisor: nil, diff --git a/plugins/http/plugin.go b/plugins/http/plugin.go index 3672f5ac..bab03edc 100644 --- a/plugins/http/plugin.go +++ b/plugins/http/plugin.go @@ -102,19 +102,6 @@ func (s *Plugin) Init(cfg config.Configurer, log logger.Logger, server server.Se } s.cfg.Env[RR_MODE] = "http" - - s.pool, err = server.NewWorkerPool(context.Background(), pool.Config{ - Debug: s.cfg.Pool.Debug, - NumWorkers: s.cfg.Pool.NumWorkers, - MaxJobs: s.cfg.Pool.MaxJobs, - AllocateTimeout: s.cfg.Pool.AllocateTimeout, - DestroyTimeout: s.cfg.Pool.DestroyTimeout, - Supervisor: s.cfg.Pool.Supervisor, - }, s.cfg.Env, s.logCallback) - if err != nil { - return errors.E(op, err) - } - s.server = server return nil @@ -141,6 +128,19 @@ func (s *Plugin) Serve() chan error { errCh := make(chan error, 2) var err error + s.pool, err = s.server.NewWorkerPool(context.Background(), pool.Config{ + Debug: s.cfg.Pool.Debug, + NumWorkers: s.cfg.Pool.NumWorkers, + MaxJobs: s.cfg.Pool.MaxJobs, + AllocateTimeout: s.cfg.Pool.AllocateTimeout, + DestroyTimeout: s.cfg.Pool.DestroyTimeout, + Supervisor: s.cfg.Pool.Supervisor, + }, s.cfg.Env, s.logCallback) + if err != nil { + errCh <- errors.E(op, err) + return errCh + } + s.handler, err = NewHandler( s.cfg.MaxRequestSize, *s.cfg.Uploads, @@ -303,12 +303,9 @@ func (s *Plugin) ServeHTTP(w http.ResponseWriter, r *http.Request) { // Workers returns associated pool workers func (s *Plugin) Workers() []worker.BaseProcess { - workers := s.pool.Workers() - baseWorkers := make([]worker.BaseProcess, 0, len(workers)) - for i := 0; i < len(workers); i++ { - baseWorkers = append(baseWorkers, worker.FromSync(workers[i].(*worker.SyncWorkerImpl))) - } - return baseWorkers + s.Lock() + defer s.Unlock() + return s.pool.Workers() } // Name returns endure.Named interface implementation |