server

package
v0.0.0-...-f9c4c5c Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 17, 2022 License: Apache-2.0 Imports: 26 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NowUnix

func NowUnix() int64

func Service

func Service(cfg Config) (err error)

func Stop

func Stop()

Types

type Center

type Center struct {
	// contains filtered or unexported fields
}

func (*Center) Go

func (c *Center) Go(n *Node, data proto.Message, timeout time.Duration, callback func(interface{}, error)) error

type CenterConfig

type CenterConfig struct {
	Address string `json:"address"`
	Token   string `json:"token"`
}

type Cmd

type Cmd struct {
	ID       int               `json:"id"`
	Name     string            `json:"name"`
	Dir      string            `json:"dir"`
	Context  string            `json:"context"`
	Args     map[string]string `json:"args"`
	User     string            `json:"user"`
	UpdateAt int64             `json:"update_at"`
	CreateAt int64             `json:"create_at"`
	CallNo   int               `json:"call_no"`
	// contains filtered or unexported fields
}

type CmdLog

type CmdLog struct {
	ID       int    `json:"id"`
	CreateAt int64  `json:"create_at"` // 执行时间
	User     string `json:"user"`      // 执行用户
	Dir      string `json:"dir"`       // 执行目录
	Node     string `json:"node"`      // 执行的节点
	Timeout  int    `json:"timeout"`   // 执行超时时间
	Context  string `json:"context"`   // 执行内容
	ResultAt int64  `json:"result_at"` // 执行结果时间
	Result   string `json:"result"`    // 执行结果
}

type CmdMgr

type CmdMgr struct {
	Success int               `json:"success"`
	Failed  int               `json:"failed"`
	GenID   int               `json:"gen_id"`
	CmdMap  map[int]*Cmd      `json:"cmd_map"`
	CmdLogs map[int][]*CmdLog `json:"cmd_logs"`
}

type Condition

type Condition struct {
	Matchers  matcher.Matchers `json:"ms"`
	Duration  int64            `json:"duration"` // 持续时间
	BeginFunc func()           `json:"_"`
	EndFunc   func()           `json:"_"`
	// contains filtered or unexported fields
}

func NewCondition

func NewCondition(dur int64, ms []*matcher.Matcher) *Condition

func (*Condition) Match

func (c *Condition) Match(set map[string]float64)

type Config

type Config struct {
	DataPath     string        `json:"data_path"`
	CenterConfig *CenterConfig `json:"center_config"`
	WebConfig    *WebConfig    `json:"web_config"`
}

type Done

type Done struct {
	// contains filtered or unexported fields
}

func (*Done) Done

func (this *Done) Done()

func (*Done) Wait

func (this *Done) Wait()

type Node

type Node struct {
	Name    string `json:"name"`
	Inet    string `json:"inet"`
	Net     string `json:"net"`
	LoginAt int64  `json:"login_at"` // 登陆时间
	// contains filtered or unexported fields
}

func (*Node) Online

func (n *Node) Online() bool

func (*Node) SendRequest

func (n *Node) SendRequest(req *drpc.Request) error

func (*Node) SendResponse

func (n *Node) SendResponse(resp *drpc.Response) error

type Process

type Process struct {
	ID       int              `json:"id"`
	Name     string           `json:"name"`
	Dir      string           `json:"dir"`
	Config   []*ProcessConfig `json:"config"`
	Command  string           `json:"command"`
	Groups   []string         `json:"groups"`
	Node     string           `json:"node"`
	User     string           `json:"user"`
	CreateAt int64            `json:"create_at"`

	State ProcessState `json:"state"`

	// 子进程启动关闭优先级,优先级低的,最先启动,关闭的时候最后关闭
	// 默认值为999 。。非必须设置
	Priority int `json:"priority"`
	// 子进程启动多少秒之后,此时状态如果是running,则我们认为启动成功了
	// 默认值为2 。。非必须设置
	StartSecs int64 `json:"start_secs"`
	// 这个是当我们向子进程发送stop信号后,到系统返回信息所等待的最大时间。
	// 超过这个时间会向该子进程发送一个强制kill的信号。
	// 默认为10秒。。非必须设置
	StopWaitSecs int64 `json:"stop_wait_secs"`
	// 进程状态为 Exited时,自动重启
	// 默认为3次。。非必须设置
	AutoStartTimes int `json:"auto_start_times"`
}

type ProcessConfig

type ProcessConfig struct {
	Name    string `json:"name"`
	Context string `json:"context"`
}

type ProcessMgr

type ProcessMgr struct {
	GenID   int                 `json:"gen_id"`
	Process map[int]*Process    `json:"process"`
	Groups  map[string]struct{} `json:"groups"` // 程序组 'nav1/nav2'
}

type ProcessState

type ProcessState struct {
	// 状态
	Status string `json:"status"`
	// 运行时Pid, Running、Stopping 时可用,启动时重置
	Pid int32 `json:"pid"`
	// 时间戳 秒, 启动、停止时设置
	Timestamp int64 `json:"timestamp"`
	// Exited 信息,启动时重置
	ExitMsg string `json:"exit_msg"`
	// 已经自动重启次数,启动时重置
	AutoStartTimes int `json:"auto_start_times"`

	Cpu float64 `json:"cpu"`
	Mem float64 `json:"mem"`
}

type Result

type Result struct {
	Code    int         `json:"code"`
	Message string      `json:"message"`
	Data    interface{} `json:"data"`
}

应答结构

type Store

type Store interface {
	Load(dataPath string) error
	Save() error
}

type User

type User struct {
	Username string              `json:"username,omitempty"`
	Password string              `json:"password,omitempty"`
	Routes   map[string]struct{} `json:"routes"`
}

type UserMgr

type UserMgr struct {
	Admin   *User            `json:"admin"`
	UserMap map[string]*User `json:"user_map"`
}

type WebConfig

type WebConfig struct {
	Address string `json:"address"`
	App     string `json:"app"`
	Admin   struct {
		Username string `json:"username"`
		Password string `json:"password"`
	} `json:"admin"`
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL