summaryrefslogtreecommitdiff
path: root/service/http/rpc.go
diff options
context:
space:
mode:
authorWolfy-J <[email protected]>2018-09-29 23:37:16 +0300
committerGitHub <[email protected]>2018-09-29 23:37:16 +0300
commit6122fca108c20984732c969fb1ba53cce5b3c44a (patch)
tree40835f46a5c208ea2546b76e3bd9fa05429b405a /service/http/rpc.go
parentabe62c0675f839586312cff1c83d6a4cb31dd9d5 (diff)
parenta04b5b33eb30944007973067ec07e9c4a2c464ab (diff)
Merge pull request #39 from spiral/feature/1.3.0v1.2.3
Feature/1.3.0
Diffstat (limited to 'service/http/rpc.go')
-rw-r--r--service/http/rpc.go33
1 files changed, 5 insertions, 28 deletions
diff --git a/service/http/rpc.go b/service/http/rpc.go
index 9dfe718e..08b3f262 100644
--- a/service/http/rpc.go
+++ b/service/http/rpc.go
@@ -2,6 +2,7 @@ package http
import (
"github.com/pkg/errors"
+ "github.com/spiral/roadrunner/util"
)
type rpcServer struct{ svc *Service }
@@ -9,22 +10,7 @@ type rpcServer struct{ svc *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.
- NumJobs int64 `json:"numExecs"`
-
- // Created is unix nano timestamp of worker creation time.
- Created int64 `json:"created"`
+ Workers []*util.State `json:"workers"`
}
// Reset resets underlying RR worker pool and restarts all of it's workers.
@@ -38,20 +24,11 @@ func (rpc *rpcServer) Reset(reset bool, r *string) error {
}
// Workers returns list of active workers and their stats.
-func (rpc *rpcServer) Workers(list bool, r *WorkerList) error {
+func (rpc *rpcServer) Workers(list bool, r *WorkerList) (err error) {
if rpc.svc == nil || rpc.svc.srv == nil {
return errors.New("http server is not running")
}
- for _, w := range rpc.svc.rr.Workers() {
- state := w.State()
- r.Workers = append(r.Workers, Worker{
- Pid: *w.Pid,
- Status: state.String(),
- NumJobs: state.NumExecs(),
- Created: w.Created.UnixNano(),
- })
- }
-
- return nil
+ r.Workers, err = util.ServerState(rpc.svc.rr)
+ return err
}