diff options
author | Wolfy-J <[email protected]> | 2018-06-03 13:12:59 +0300 |
---|---|---|
committer | Wolfy-J <[email protected]> | 2018-06-03 13:12:59 +0300 |
commit | a891f511f973c102f3a425a0686203fba2117841 (patch) | |
tree | 78f4534e6235b34b963799b0fbda202f91faca14 | |
parent | 6f805059d5eff80ad89ed8b2abc50bdd52fb3e4b (diff) |
minor CS
-rw-r--r-- | http/rpc.go | 37 | ||||
-rw-r--r-- | http/server.go | 2 | ||||
-rw-r--r-- | utils/workers.go | 37 |
3 files changed, 43 insertions, 33 deletions
diff --git a/http/rpc.go b/http/rpc.go index c065432c..94aeca23 100644 --- a/http/rpc.go +++ b/http/rpc.go @@ -2,34 +2,17 @@ package http import ( "github.com/sirupsen/logrus" + "github.com/spiral/roadrunner/utils" ) type rpcServer struct { - Service *Service + service *Service } // WorkerList contains list of workers. type WorkerList struct { // Workers is list of workers. - Workers []Worker `json:"workers"` -} - -// Worker provides information about specific worker. -type Worker struct { - // Pid contains process id. - Pid int `json:"pid"` - - // Status of the worker. - Status string `json:"status"` - - // Number of worker executions. - NumExecs uint64 `json:"numExecs"` - - // Created is unix nano timestamp of worker creation time. - Created int64 `json:"created"` - - // Updated is unix nano timestamp of last worker execution. - Updated int64 `json:"updated"` + Workers []utils.Worker `json:"workers"` } // Reset resets underlying RR worker pool and restarts all of it's workers. @@ -37,21 +20,11 @@ func (rpc *rpcServer) Reset(reset bool, r *string) error { logrus.Info("resetting worker pool") *r = "OK" - return rpc.Service.srv.rr.Reset() + return rpc.service.srv.rr.Reset() } // Workers returns list of active workers and their stats. func (rpc *rpcServer) Workers(list bool, r *WorkerList) error { - for _, w := range rpc.Service.srv.rr.Workers() { - state := w.State() - r.Workers = append(r.Workers, Worker{ - Pid: *w.Pid, - Status: state.String(), - NumExecs: state.NumExecs(), - Created: w.Created.UnixNano(), - Updated: state.Updated().UnixNano(), - }) - } - + r.Workers = utils.FetchWorkers(rpc.service.srv.rr) return nil } diff --git a/http/server.go b/http/server.go index 41e39133..22c6380a 100644 --- a/http/server.go +++ b/http/server.go @@ -8,7 +8,7 @@ import ( "strconv" ) -// Service serves http connections to underlying PHP application using PSR-7 protocol. Context will include request headers, +// service serves http connections to underlying PHP application using PSR-7 protocol. Context will include request headers, // parsed files and query, payload will include parsed form dataTree (if any). type Server struct { cfg *Config diff --git a/utils/workers.go b/utils/workers.go new file mode 100644 index 00000000..0c4f778f --- /dev/null +++ b/utils/workers.go @@ -0,0 +1,37 @@ +package utils + +import "github.com/spiral/roadrunner" + +// Worker provides information about specific worker. +type Worker struct { + // Pid contains process id. + Pid int `json:"pid"` + + // Status of the worker. + Status string `json:"status"` + + // Number of worker executions. + NumExecs uint64 `json:"numExecs"` + + // Created is unix nano timestamp of worker creation time. + Created int64 `json:"created"` + + // Updated is unix nano timestamp of last worker execution. + Updated int64 `json:"updated"` +} + +// FetchWorkers fetches list of workers from RR Server. +func FetchWorkers(srv *roadrunner.Server) (result []Worker) { + for _, w := range srv.Workers() { + state := w.State() + result = append(result, Worker{ + Pid: *w.Pid, + Status: state.String(), + NumExecs: state.NumExecs(), + Created: w.Created.UnixNano(), + Updated: state.Updated().UnixNano(), + }) + } + + return +} |