diff options
Diffstat (limited to '_____/utils/workers.go')
-rw-r--r-- | _____/utils/workers.go | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/_____/utils/workers.go b/_____/utils/workers.go new file mode 100644 index 00000000..1024b4c6 --- /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 +}
\ No newline at end of file |