Ai
1 Star 0 Fork 1

雅痞/go-xxljob-executor

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
ExecutorBizImpl.go 2.71 KB
一键复制 编辑 原始数据 按行查看 历史
yangzhiqiang02 提交于 2023-03-01 09:52 +08:00 . 自定义
package server
import (
. "gitee.com/YaPi98/go-xxljob-executor/biz/model"
"gitee.com/YaPi98/go-xxljob-executor/enums/gluetype"
. "gitee.com/YaPi98/go-xxljob-executor/global"
"gitee.com/YaPi98/go-xxljob-executor/proccess"
"gitee.com/YaPi98/go-xxljob-executor/run"
"gitee.com/YaPi98/go-xxljob-executor/tools"
"time"
)
const (
SERIAL_EXECUTION = "SERIAL_EXECUTION"
DISCARD_LATER = "DISCARD_LATER"
COVER_EARLY = "COVER_EARLY"
)
type ExecutorBizImpl struct {
triggerCallback *proccess.TriggerCallbackProccessor
}
func NewExecutorBizImpl(triggerCallback *proccess.TriggerCallbackProccessor) *ExecutorBizImpl {
return &ExecutorBizImpl{
triggerCallback: triggerCallback,
}
}
func (t *ExecutorBizImpl) Beat() ReturnT {
return ReturnT{Code: SUCCESS_CODE}
}
func (t *ExecutorBizImpl) IdleBeat(idleBeatParam IdleBeatParam) ReturnT {
jobRunner := run.GetJubRunner(idleBeatParam.JobId)
if nil != jobRunner && jobRunner.IsRunningOrHasQueue() {
return ReturnT{
Code: FAIL_CODE,
Msg: "job thread is running or has trigger queue.",
}
}
return ReturnT{Code: SUCCESS_CODE}
}
func (t *ExecutorBizImpl) Run(triggerParam TriggerParam) ReturnT {
Logger.Info("-----------------" + triggerParam.String())
if triggerParam.GlueType != gluetype.BEAN {
return ReturnT{
Code: FAIL_CODE,
Msg: "only support one GlueType:BEAN !!! ",
}
}
handler := run.GetJobHandler(triggerParam.ExecutorHandler)
if nil == handler {
return ReturnT{
Code: FAIL_CODE,
Msg: "has no such ExecutorHandler!!",
}
}
jobRunner := run.GetJubRunner(triggerParam.JobId)
if nil == jobRunner {
jobRunner = run.AddJobRunner(triggerParam.JobId, run.GetJobHandler(triggerParam.ExecutorHandler), t.triggerCallback)
}
switch triggerParam.ExecutorBlockStrategy {
case SERIAL_EXECUTION:
jobRunner.PushTriggerQueue(triggerParam)
case DISCARD_LATER:
if jobRunner.IsRunningOrHasQueue() {
return ReturnT{Code: FAIL_CODE, Msg: "block strategy effect:" + DISCARD_LATER}
} else {
jobRunner.PushTriggerQueue(triggerParam)
}
case COVER_EARLY:
jobRunner.Run(triggerParam)
}
return ReturnT{Code: SUCCESS_CODE}
}
func (t *ExecutorBizImpl) Kill(killParam KillParam) ReturnT {
jobRunner := run.GetJubRunner(killParam.JobId)
if nil == jobRunner {
run.RemoveJobRunner(killParam.JobId)
return ReturnT{
Code: SUCCESS_CODE,
Msg: "scheduling center kill job.",
}
}
return ReturnT{
Code: SUCCESS_CODE,
Msg: "job thread already killed.",
}
}
func (t *ExecutorBizImpl) Log(logParam LogParam) ReturnT {
logFileName := tools.MakeLogFileName(logParam.LogId, time.Unix(logParam.LogDateTim/1000, 0))
logResult := tools.ReadLog(logFileName, logParam.FromLineNum)
return ReturnT{
Code: SUCCESS_CODE,
Content: logResult,
}
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/YaPi98/go-xxljob-executor.git
git@gitee.com:YaPi98/go-xxljob-executor.git
YaPi98
go-xxljob-executor
go-xxljob-executor
b025b398d5e8

搜索帮助