Documentation
¶
Index ¶
- Constants
- Variables
- func APIServiceAuth(recvNew func() interface{}) echo.MiddlewareFuncd
- func GenerateSerialNo() string
- func GetLocalIpAddress() (ip string)
- func PackGroupConf(groupConf *GroupConf) (value []byte, err error)
- func PackJobConf(jobConf *JobConf) (value []byte, err error)
- func PackJobExecuteSnapshot(snapshot *JobExecuteSnapshot) (value []byte, err error)
- func PackJobSnapshot(snapshot *JobSnapshot) (value []byte, err error)
- func ParseInLocation(value string) (dateTime time.Time, err error)
- func TimeSubDays(t1, t2 time.Time) int
- func ToDateString(date time.Time) string
- type APIAuth
- type Client
- type Group
- type GroupConf
- type InputLogin
- type JobAPI
- type JobChangeEvent
- type JobClient
- type JobClientDeleteEvent
- type JobCollection
- type JobConf
- type JobExecuteSnapshot
- type JobExecuteSnapshotExt
- type JobExecutor
- type JobGroupManager
- type JobManager
- func (manager *JobManager) AddGroup(groupConf *GroupConf) (err error)
- func (manager *JobManager) AddJob(jobConf *JobConf) (err error)
- func (manager *JobManager) ClearKiller(group ...string) (err error)
- func (manager *JobManager) DeleteGroup(groupConf *GroupConf) (err error)
- func (manager *JobManager) DeleteJob(jobConf *JobConf) (err error)
- func (manager *JobManager) EditGroup(groupConf *GroupConf) (err error)
- func (manager *JobManager) EditJob(jobConf *JobConf) (err error)
- func (manager *JobManager) GroupList() (groupConfs []*GroupConf, err error)
- func (manager *JobManager) JobList() (jobConfs []*JobConf, err error)
- func (manager *JobManager) Kill(snapshot *JobSnapshot) (err error)
- func (manager *JobManager) ManualExecute(snapshot *JobSnapshot) error
- func (manager *JobManager) ManualExecuteJob(jobId string) error
- func (manager *JobManager) NodeList() (nodes []string, err error)
- type JobNode
- func (node *JobNode) Bootstrap()
- func (node *JobNode) Close()
- func (node *JobNode) DB() sqlbuilder.Database
- func (node *JobNode) ETCD() *etcd.Etcd
- func (node *JobNode) Manager() *JobManager
- func (node *JobNode) SetDBConfig(conf mysql.ConnectionURL) (err error)
- func (node *JobNode) SetDSN(dsn string) (err error)
- func (node *JobNode) StartAPIServer(auth *APIAuth, address string, opts ...engine.ConfigSetter)
- func (node *JobNode) UseTable(table string) db.Collection
- type JobScheduler
- type JobSnapshot
- type JobSnapshotFailOver
- type JobSnapshotWithPath
- type ManualExecuteJobParam
- type Node
- type NodeStateChangeListener
- type PageResult
- type QueryClientParam
- type QueryExecuteSnapshotParam
- type QuerySnapshotParam
- type Result
- type SchedulePlan
Constants ¶
View Source
const ( CodeSuccess = 0 CodeFailure = -1 )
View Source
const ( JobSnapshotPath = "/forest/client/snapshot/" JobSnapshotGroupPath = "/forest/client/snapshot/%s/" // %s:client.group JobClientSnapshotPath = "/forest/client/snapshot/%s/%s/" // %s:client.group %s:client.ip )
View Source
const ( GroupConfPath = "/forest/server/group/" ClientPath = "/forest/client/%s/clients/" )
View Source
const ( JobConfPath = "/forest/server/conf/" JobKillerRoot = "/forest/client/killer/snapshot/" JobKillerPrefix = "/forest/client/killer/snapshot/%s/%s/" // %s:client.group %s:client.ip +snapshot.id )
View Source
const ( JobNodePath = "/forest/server/node/" JobNodeElectPath = "/forest/server/elect/leader" TTL = 5 )
View Source
const ( JobCreateChangeEvent = iota JobUpdateChangeEvent JobDeleteChangeEvent )
View Source
const ( JobRunningStatus = iota + 1 JobStopStatus )
View Source
const ( NodeFollowerState = iota NodeLeaderState )
View Source
const ( JobExecuteSnapshotDoingStatus = 1 JobExecuteSnapshotSuccessStatus = 2 JobExecuteSnapshotUnknownStatus = 3 JobExecuteSnapshotErrorStatus = -1 )
View Source
const (
JobExecuteStatusCollectionPath = "/forest/client/execute/snapshot/"
)
View Source
const (
TableJobExecuteSnapshot = `job_execute_snapshot`
)
Variables ¶
View Source
var ( ErrPasswordInvalid = errors.New("密码不正确") ErrInvalidPostBody = errors.New("无效的post数据") )
View Source
var ExecuteSnapshotCanRetry = time.Hour * 6
ExecuteSnapshotCanRetry 指定开始多长时间后可以重试(用于开始后中途异常退出后重试)
View Source
var (
InitSQLs = []string{
"CREATE TABLE `job_execute_snapshot` (\n" +
"`id` varchar(64) NOT NULL COMMENT '主键',\n" +
"`job_id` varchar(32) NOT NULL DEFAULT '' COMMENT '任务定义id',\n" +
"`name` varchar(120) NOT NULL COMMENT '任务名称',\n" +
"`group` varchar(32) NOT NULL COMMENT '任务集群',\n" +
"`cron` varchar(32) NOT NULL DEFAULT '' COMMENT 'cron表达式',\n" +
"`target` varchar(255) NOT NULL COMMENT '目标任务',\n" +
"`params` varchar(2000) NOT NULL DEFAULT '' COMMENT '参数',\n" +
"`ip` varchar(32) NOT NULL DEFAULT '' COMMENT 'ip',\n" +
"`status` tinyint(4) NOT NULL DEFAULT '3' COMMENT '状态(1-执行中;2-完成;3-未知;4-错误)',\n" +
"`remark` varchar(255) NOT NULL DEFAULT '' COMMENT '备注',\n" +
"`create_time` varchar(32) NOT NULL DEFAULT '' COMMENT '创建时间',\n" +
"`start_time` varchar(32) NOT NULL DEFAULT '' COMMENT '开始时间',\n" +
"`finish_time` varchar(32) NOT NULL DEFAULT '' COMMENT '结束时间',\n" +
"`times` bigint(20) NOT NULL DEFAULT '0' COMMENT '耗时',\n" +
"`result` varchar(2000) NOT NULL DEFAULT '' COMMENT '返回结果',\n" +
"PRIMARY KEY (`id`),\n" +
"KEY `ip` (`ip`),\n" +
"KEY `job_id` (`job_id`),\n" +
"KEY `status` (`status`),\n" +
"KEY `target` (`target`),\n" +
"KEY `group` (`group`)\n" +
") ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='任务作业执行快照';\n",
}
)
Functions ¶
func APIServiceAuth ¶ added in v0.2.0
func APIServiceAuth(recvNew func() interface{}) echo.MiddlewareFuncd
func GenerateSerialNo ¶
func GenerateSerialNo() string
func GetLocalIpAddress ¶
func GetLocalIpAddress() (ip string)
func PackGroupConf ¶
func PackJobConf ¶
func PackJobExecuteSnapshot ¶
func PackJobExecuteSnapshot(snapshot *JobExecuteSnapshot) (value []byte, err error)
func PackJobSnapshot ¶
func PackJobSnapshot(snapshot *JobSnapshot) (value []byte, err error)
func TimeSubDays ¶
func ToDateString ¶
Types ¶
type APIAuth ¶ added in v0.2.0
type APIAuth struct { Auth func(*InputLogin) error JWTKey string }
func NewAPIAuth ¶ added in v0.2.0
type GroupConf ¶
func UnpackGroupConf ¶
type InputLogin ¶
type JobChangeEvent ¶
type JobClientDeleteEvent ¶
type JobCollection ¶
type JobCollection struct {
// contains filtered or unexported fields
}
func NewJobCollection ¶
func NewJobCollection(node *JobNode) (c *JobCollection)
type JobConf ¶
type JobConf struct { Id string `json:"id"` Name string `json:"name"` Group string `json:"group"` Cron string `json:"cron"` Status int `json:"status"` Target string `json:"target"` Params string `json:"params"` Mobile string `json:"mobile"` Remark string `json:"remark"` Version int `json:"version"` }
JobConf job
func UnpackJobConf ¶
type JobExecuteSnapshot ¶
type JobExecuteSnapshot struct { Id string `json:"id" db:"id"` JobId string `json:"jobId" db:"job_id"` Name string `json:"name" db:"name"` Ip string `json:"ip" db:"ip"` Group string `json:"group" db:"group"` Cron string `json:"cron" db:"cron"` Target string `json:"target" db:"target"` Params string `json:"params" db:"params"` Remark string `json:"remark" db:"remark"` CreateTime string `json:"createTime" db:"create_time"` StartTime string `json:"startTime" db:"start_time"` FinishTime string `json:"finishTime" db:"finish_time"` Times int `json:"times" db:"times"` Status int `json:"status" db:"status"` Result string `json:"result" db:"result"` }
func UnpackJobExecuteSnapshot ¶
func UnpackJobExecuteSnapshot(value []byte) (snapshot *JobExecuteSnapshot, err error)
func (*JobExecuteSnapshot) NewSnapshot ¶ added in v0.3.11
func (s *JobExecuteSnapshot) NewSnapshot() *JobSnapshot
func (*JobExecuteSnapshot) Path ¶ added in v0.2.0
func (s *JobExecuteSnapshot) Path() string
type JobExecuteSnapshotExt ¶ added in v0.2.1
type JobExecuteSnapshotExt struct { *JobExecuteSnapshot CanRetry bool `json:"canRetry" db:"-"` }
type JobExecutor ¶
type JobExecutor struct {
// contains filtered or unexported fields
}
func NewJobExecutor ¶
func NewJobExecutor(node *JobNode) (exec *JobExecutor)
type JobGroupManager ¶
type JobGroupManager struct {
// contains filtered or unexported fields
}
func NewJobGroupManager ¶
func NewJobGroupManager(node *JobNode) (mgr *JobGroupManager)
type JobManager ¶
type JobManager struct {
// contains filtered or unexported fields
}
func NewJobManager ¶
func NewJobManager(node *JobNode) (manager *JobManager)
func (*JobManager) AddGroup ¶ added in v0.2.0
func (manager *JobManager) AddGroup(groupConf *GroupConf) (err error)
add group
func (*JobManager) AddJob ¶
func (manager *JobManager) AddJob(jobConf *JobConf) (err error)
AddJob add job conf
func (*JobManager) ClearKiller ¶ added in v0.2.0
func (manager *JobManager) ClearKiller(group ...string) (err error)
func (*JobManager) DeleteGroup ¶ added in v0.2.0
func (manager *JobManager) DeleteGroup(groupConf *GroupConf) (err error)
delete group
func (*JobManager) DeleteJob ¶ added in v0.2.0
func (manager *JobManager) DeleteJob(jobConf *JobConf) (err error)
delete job conf
func (*JobManager) EditGroup ¶ added in v0.2.0
func (manager *JobManager) EditGroup(groupConf *GroupConf) (err error)
edit group
func (*JobManager) EditJob ¶ added in v0.2.0
func (manager *JobManager) EditJob(jobConf *JobConf) (err error)
edit job conf
func (*JobManager) GroupList ¶ added in v0.2.0
func (manager *JobManager) GroupList() (groupConfs []*GroupConf, err error)
group list
func (*JobManager) JobList ¶ added in v0.2.0
func (manager *JobManager) JobList() (jobConfs []*JobConf, err error)
job list
func (*JobManager) Kill ¶ added in v0.2.0
func (manager *JobManager) Kill(snapshot *JobSnapshot) (err error)
func (*JobManager) ManualExecute ¶ added in v0.2.0
func (manager *JobManager) ManualExecute(snapshot *JobSnapshot) error
ManualExecute 手动执行任务
func (*JobManager) ManualExecuteJob ¶ added in v0.2.0
func (manager *JobManager) ManualExecuteJob(jobId string) error
func (*JobManager) NodeList ¶ added in v0.2.0
func (manager *JobManager) NodeList() (nodes []string, err error)
node list
type JobNode ¶
type JobNode struct {
// contains filtered or unexported fields
}
JobNode job node
func NewJobNode ¶
func (*JobNode) DB ¶ added in v0.2.0
func (node *JobNode) DB() sqlbuilder.Database
func (*JobNode) Manager ¶ added in v0.2.0
func (node *JobNode) Manager() *JobManager
func (*JobNode) SetDBConfig ¶ added in v0.2.0
func (node *JobNode) SetDBConfig(conf mysql.ConnectionURL) (err error)
func (*JobNode) StartAPIServer ¶ added in v0.1.9
func (node *JobNode) StartAPIServer(auth *APIAuth, address string, opts ...engine.ConfigSetter)
StartAPIServer create a job http api and start service
type JobScheduler ¶
type JobScheduler struct {
// contains filtered or unexported fields
}
JobScheduler job scheduler
func NewJobScheduler ¶
func NewJobScheduler(node *JobNode) (sch *JobScheduler)
type JobSnapshot ¶
type JobSnapshot struct { Id string `json:"id"` JobId string `json:"jobId"` Name string `json:"name"` Ip string `json:"ip"` Group string `json:"group"` Cron string `json:"cron"` Target string `json:"target"` Params string `json:"params"` Remark string `json:"remark"` CreateTime string `json:"createTime"` }
func UnpackJobSnapshot ¶
func UnpackJobSnapshot(value []byte) (snapshot *JobSnapshot, err error)
func (*JobSnapshot) Path ¶ added in v0.2.0
func (s *JobSnapshot) Path() string
type JobSnapshotFailOver ¶
type JobSnapshotFailOver struct {
// contains filtered or unexported fields
}
func NewJobSnapshotFailOver ¶
func NewJobSnapshotFailOver(node *JobNode) (f *JobSnapshotFailOver)
new job snapshot fail over
type JobSnapshotWithPath ¶ added in v0.2.0
type JobSnapshotWithPath struct { *JobSnapshot Path string }
type ManualExecuteJobParam ¶
type ManualExecuteJobParam struct { Id string `json:"id"` Name string `json:"name"` Group string `json:"group"` }
ManualExecuteJobParam manual execute job
type NodeStateChangeListener ¶
type NodeStateChangeListener interface {
// contains filtered or unexported methods
}
NodeStateChangeListener node state change listener
type PageResult ¶
type QueryClientParam ¶
type QueryClientParam struct {
Group string `json:"group"`
}
type QuerySnapshotParam ¶
type SchedulePlan ¶
type SchedulePlan struct { Id string `json:"id"` Name string `json:"name"` Group string `json:"group"` Cron string `json:"cron"` Status int `json:"status"` Target string `json:"target"` Params string `json:"params"` Mobile string `json:"mobile"` Remark string `json:"remark"` NextTime time.Time `json:"nextTime"` BeforeTime time.Time `json:"beforeTime"` Version int `json:"version"` // contains filtered or unexported fields }
Source Files
¶
Click to show internal directories.
Click to hide internal directories.