Documentation ¶
Index ¶
- Constants
- func AttachEncode(attach *AttachData) []byte
- func GetStateString(state int) string
- func JobBaseEnCode(jobbase *JobBase) ([]byte, error)
- func JobsAllocDeCode(b []byte, alloc *JobsAlloc) error
- func JobsAllocEnCode(pool *sync.Pool, alloc *JobsAlloc) ([]byte, error)
- type AllocMapper
- type AttachData
- type Group
- type Job
- type JobBase
- type JobData
- type JobDataInfo
- type JobExecute
- type JobLog
- type JobSelect
- type JobsAlloc
- type JobsAllocData
- type MessageCache
- type MonthlyOf
- type MsgHeader
- type Notify
- type NotifySetting
- type Schedule
- type Server
- type ServerConfig
- type SimpleJob
- type SystemEvent
- type WorkLocation
Constants ¶
View Source
const ( CreateJobEvent = "create_job" //创建任务事件 ChangeJobEvent = "change_job" //修改任务事件 RemoveJobEvent = "remove_job" //删除任务事件 ChangeJobsFileEvent = "change_jobsfile" //任务文件批量修改事件 CreateGroupEvent = "create_group" //创建分组事件 ChangeGroupEvent = "change_group" //改变分组事件 RemoveGroupEvent = "remove_group" //删除分组事件 CreateRuntimeEvent = "create_runtime" //创建Runtime事件 ChangeRuntimeEvent = "change_runtime" //改变Runtime事件 RemoveRuntimeEvent = "remove_runtime" //删除Runtime事件 )
事件类型定义
View Source
const ( MsgJobExecute = "JobExecute" //任务执行状态结果消息 MsgJobSelect = "JobSelect" //任务选择下次执行消息 )
消息头类型定义
View Source
const ( TURNMODE_SECONDS = 1 //秒轮询 TURNMODE_MINUTES = 2 //分钟轮询 TURNMODE_HOURLY = 3 //小时轮询 TURNMODE_DAILY = 4 //天轮询 TURNMODE_WEEKLY = 5 //周轮询 TURNMODE_MONTHLY = 6 //月轮询 )
任务轮询模式信息
View Source
const ( STATE_REALLOC int = 202 //重新分配 STATE_CREATED int = 201 //初始创建 STATE_STARTED int = 200 //成功状态 STATE_STOPED int = 0 //停止状态 STATE_FAILED int = -1 //失败状态 )
View Source
const (
MsgSystemEvent = "SystemEvent" //系统事件消息
)
消息头类型定义
Variables ¶
This section is empty.
Functions ¶
func AttachEncode ¶
func AttachEncode(attach *AttachData) []byte
func GetStateString ¶
GetStateString is exported return state string.
func JobBaseEnCode ¶
Types ¶
type AttachData ¶
type AttachData struct {
JobMaxCount int `json:"jobmaxcount"` //每个节点的最大任务数配置
}
节点附加数据定义
func AttachDecode ¶
func AttachDecode(data []byte) *AttachData
type Group ¶
type Group struct { Id string `json:"id" bson:"id"` //组编号 Name string `json:"name" bson:"name"` //组名称 Owners []string `json:"owners" bson:"owners"` //组管理员 }
分组信息
type Job ¶
type Job struct { JobId string `json:"jobid"` //任务编号 Name string `json:"name"` //任务名称 Location string `json:"location"` //隶属位置 Servers []string `json:"servers"` //分配服务器信息,若为空则由调度器以hash分配,一但设置了Servers,Job仅限于Servers范围进行分配. GroupId string `json:"groupid"` //隶属分组 FileName string `json:"filename"` //文件名称 Cmd string `json:"cmd"` //执行命令 Env []string `json:"env"` //环境变量 Timeout int `json:"timeout"` //执行超时(0:永远等待) Enabled int `json:"enabled"` //任务开关(0:关 1:开) Schedule []*Schedule `json:"schedule"` //任务计划 NotifySetting *NotifySetting `json:"notifysetting"` //任务通知配置 Stat int `json:"stat"` //执行编码 ExecErr string `json:"execerr"` //执行错误信息 ExecAt time.Time `json:"execat"` //本次执行时间 NextAt time.Time `json:"nextat"` //下次执行时间 }
任务信息
type JobBase ¶
type JobBase struct { JobId string `json:"jobid"` JobName string `json:"jobname"` FileName string `json:"filename"` FileCode string `json:"filecode"` Cmd string `json:"cmd"` Env []string `json:"env"` Timeout int `json:"timeout"` Version int `json:"version"` Schedule []*Schedule `json:"schedule"` }
func JobBaseDeCode ¶
type JobData ¶
type JobData struct { JobId string `json:"jobid"` //任务编号 Key string `json:"key"` //任务名称 Version int `json:"version"` //任务版本 }
分配表单条Job信息
type JobDataInfo ¶
type JobDataInfo struct { JobData JobName string `json:"jobname"` IpAddr string `json:"ipaddr"` HostName string `json:"hostname"` }
Job分配信息
type JobExecute ¶
type JobExecute struct { MsgHeader //消息头 JobId string `json:"jobid"` //任务编号 Location string `json:"location"` //所在位置 Key string `json:"key"` //执行服务器 IPAddr string `json:"ipaddr"` //服务器地址 State int `json:"state"` //执行编码 ExecErr string `json:"execerr"` //执行错误信息 ExecAt time.Time `json:"execat"` //本次执行时间 NextAt time.Time `json:"nextat"` //下次执行时间 Timestamp int64 `json:"timestamp"` //消息时间戳 }
任务执行状态结果消息体定义 Header.MsgName = MsgJobExecute
type JobLog ¶
type JobLog struct { JobId string `json:"jobid"` //任务编号 MsgId string `json:"msgid"` //消息编号 Event string `json:"event"` //事件描述 Group string `json:"group"` //隶属分组 Stat int `json:"stat"` //状态编码 Location string `json:"location"` //所在位置 Command string `json:"command"` //执行命令 WorkDir string `json:"workdir"` //执行工作目录 IpAddr string `json:"ipaddr"` //服务器地址 StdOut string `json:"stdout"` //标准输出 ErrOut string `json:"errout"` //错误输出 ExecErr string `json:"execerr"` //执行错误信息 ExecAt time.Time `json:"execat"` //本次执行时间 ExecTimes float64 `json:"exectimes"` //执行耗时(毫秒) CreateAt int64 `json:"createat"` //日志时间 }
任务日志信息定义
type JobsAllocData ¶
type JobsAllocData struct { Location string `json:"location"` Version int `json:"version"` Data []*JobDataInfo `json:"data"` }
Job分配表详细数据
type MessageCache ¶
func NewMessageCache ¶
func NewMessageCache() *MessageCache
func (*MessageCache) ValidateMessage ¶
func (mc *MessageCache) ValidateMessage(message interface{}) bool
type MonthlyOf ¶
type MonthlyOf struct { /* Day 选定月份第n天 > 0 表示每月第n天 < 0 表示每月倒数第n天 == 0 表示按Week方式处理 */ Day int `json:"day"` /* Week 选定月份第n个星期, 星期由0~6编码表示 "0:1" 表示最后一个星期一 "1:2" 表示第一个星期二 "2:4" 表示第二个星期四 */ Week string `json:"week"` }
月轮询选项
type Notify ¶
type Notify struct { Enabled bool `json:"enabled"` //通知开关 Subject string `json:"subject"` //通知标题 To string `json:"to"` //接收者 Content string `json:"content"` //通知内容 }
通知定义
type NotifySetting ¶
type NotifySetting struct { Succeed Notify `json:"succeed"` //成功通知 Failed Notify `json:"failed"` //失败通知 }
通知设置定义
type Schedule ¶
type Schedule struct { Id string `json:"id"` //计划编号 Enabled int `json:"enabled"` //计划开关(0:关 1:开) TurnMode int `json:"turnmode"` //轮询模式 Interval int `json:"interval"` //轮询间隔 StartDate string `json:"startdate"` //开始日期 EndDate string `json:"enddate"` //结束日期 StartTime string `json:"starttime"` //开始时间 EndTime string `json:"endtime"` //结束时间 SelectAt string `json:"selectat"` //选择条件(条件已","符号分隔) MonthlyOf MonthlyOf `json:"monthlyof"` //月轮询选项 }
计划信息
type Server ¶
type Server struct { Key string `json:"key" bson:"key"` //主机Key Name string `json:"name" bson:"name"` //主机名称 IPAddr string `json:"ipaddr" bson:"ipaddr"` //Ip地址 APIAddr string `json:"apiaddr" bson:"apiaddr"` //API地址 OS string `json:"os" bson:"os"` //系统环境 Platform string `json:"platform" bson:"platform"` //运行平台 Status int `json:"status" bson:"status"` //状态(0:离线 1:在线) Alivestamp int64 `json:"alivestamp" bson:"alivestamp"` //存活时间戳 }
服务器信息
func CreateServer ¶
func CreateServer(key string, node *gzkwrapper.NodeData, status int) *Server
type ServerConfig ¶
type ServerConfig struct { WebSiteHost string `json:"websitehost"` CenterHost string `json:"centerhost"` StorageDriver interface{} `json:"storagedriver"` }
ServerConfig is exported
func ParseServerConfigs ¶
func ParseServerConfigs(b []byte) (*ServerConfig, error)
ParseServerConfigs is exported parse bytes to ServerConfig object.
type SimpleJob ¶
type SimpleJob struct { JobId string `json:"jobid"` //任务编号 Name string `json:"name"` //任务名称 Location string `json:"location"` //隶属位置 GroupId string `json:"groupid"` //隶属分组 Servers []string `json:"servers"` //分配服务器信息 Enabled int `json:"enabled"` //任务开关(0:关 1:开) Stat int `json:"stat"` //执行编码 }
任务基础简要信息 用于任务调度等信息交换
Click to show internal directories.
Click to hide internal directories.