forked from yuxh/gearman-go
46 lines
908 B
Go
46 lines
908 B
Go
package worker
|
|
|
|
import (
|
|
"encoding/json"
|
|
"runtime"
|
|
)
|
|
|
|
// Job handler
|
|
type JobHandler func(Job) error
|
|
|
|
type JobFunc func(Job) ([]byte, error)
|
|
|
|
// The definition of the callback function.
|
|
type jobFunc struct {
|
|
f JobFunc
|
|
timeout uint32
|
|
}
|
|
|
|
// Map for added function.
|
|
type jobFuncs map[string]*jobFunc
|
|
|
|
type systemInfo struct {
|
|
GOOS, GOARCH, GOROOT, Version string
|
|
NumCPU, NumGoroutine int
|
|
NumCgoCall int64
|
|
}
|
|
|
|
func SysInfo(job Job) ([]byte, error) {
|
|
return json.Marshal(&systemInfo{
|
|
GOOS: runtime.GOOS,
|
|
GOARCH: runtime.GOARCH,
|
|
GOROOT: runtime.GOROOT(),
|
|
Version: runtime.Version(),
|
|
NumCPU: runtime.NumCPU(),
|
|
NumGoroutine: runtime.NumGoroutine(),
|
|
NumCgoCall: runtime.NumCgoCall(),
|
|
})
|
|
}
|
|
|
|
var memState runtime.MemStats
|
|
|
|
func MemInfo(job Job) ([]byte, error) {
|
|
runtime.ReadMemStats(&memState)
|
|
return json.Marshal(&memState)
|
|
}
|