xxl-job/xxl-job-executor-go
Fork: 106 Star: 433 (更新于 2024-11-21 09:44:49)
license: MIT
Language: Go .
xxl-job 执行器(golang 客户端)
最后发布版本: v1.2.0 ( 2023-05-17 22:18:57)
xxl-job-executor-go
很多公司java与go开发共存,java中有xxl-job做为任务调度引擎,为此也出现了go执行器(客户端),使用起来比较简单:
支持
1.执行器注册
2.耗时任务取消
3.任务注册,像写http.Handler一样方便
4.任务panic处理
5.阻塞策略处理
6.任务完成支持返回执行备注
7.任务超时取消 (单位:秒,0为不限制)
8.失败重试次数(在参数param中,目前由任务自行处理)
9.可自定义日志
10.自定义日志查看handler
11.支持外部路由(可与gin集成)
12.支持自定义中间件
Example
package main
import (
"context"
"fmt"
xxl "github.com/xxl-job/xxl-job-executor-go"
"github.com/xxl-job/xxl-job-executor-go/example/task"
"log"
)
func main() {
exec := xxl.NewExecutor(
xxl.ServerAddr("http://127.0.0.1/xxl-job-admin"),
xxl.AccessToken(""), //请求令牌(默认为空)
xxl.ExecutorIp("127.0.0.1"), //可自动获取
xxl.ExecutorPort("9999"), //默认9999(非必填)
xxl.RegistryKey("golang-jobs"), //执行器名称
xxl.SetLogger(&logger{}), //自定义日志
)
exec.Init()
exec.Use(customMiddleware)
//设置日志查看handler
exec.LogHandler(customLogHandle)
//注册任务handler
exec.RegTask("task.test", task.Test)
exec.RegTask("task.test2", task.Test2)
exec.RegTask("task.panic", task.Panic)
log.Fatal(exec.Run())
}
// 自定义日志处理器
func customLogHandle(req *xxl.LogReq) *xxl.LogRes {
return &xxl.LogRes{Code: xxl.SuccessCode, Msg: "", Content: xxl.LogResContent{
FromLineNum: req.FromLineNum,
ToLineNum: 2,
LogContent: "这个是自定义日志handler",
IsEnd: true,
}}
}
// xxl.Logger接口实现
type logger struct{}
func (l *logger) Info(format string, a ...interface{}) {
fmt.Println(fmt.Sprintf("自定义日志 - "+format, a...))
}
func (l *logger) Error(format string, a ...interface{}) {
log.Println(fmt.Sprintf("自定义日志 - "+format, a...))
}
// 自定义中间件
func customMiddleware(tf xxl.TaskFunc) xxl.TaskFunc {
return func(cxt context.Context, param *xxl.RunReq) string {
log.Println("I am a middleware start")
res := tf(cxt, param)
log.Println("I am a middleware end")
return res
}
}
示例项目
github.com/xxl-job/xxl-job-executor-go/example/
与gin框架集成
https://github.com/gin-middleware/xxl-job-executor
xxl-job-admin配置
添加执行器
执行器管理->新增执行器,执行器列表如下:
AppName 名称 注册方式 OnLine 机器地址 操作
golang-jobs golang执行器 自动注册 查看 ( 1 )
查看->注册节点
http://127.0.0.1:9999
添加任务
任务管理->新增(注意,使用BEAN模式,JobHandler与RegTask名称一致)
1 测试panic BEAN:task.panic * 0 * * * ? admin STOP
2 测试耗时任务 BEAN:task.test2 * * * * * ? admin STOP
3 测试golang BEAN:task.test * * * * * ? admin STOP
最近版本更新:(数据更新于 2024-09-02 20:49:52)
2023-05-17 22:18:57 v1.2.0
2022-10-17 14:01:30 v1.1.2
2022-01-13 10:06:56 v1.1.0
2021-12-20 16:02:06 v1.0.3
2021-10-26 15:23:00 v1.0.2
2021-08-24 10:06:55 v1.0.1
2021-07-13 11:51:19 v1.0.0
2021-06-02 12:00:27 v0.6.1
2021-04-19 16:00:51 v0.5.2
2021-01-13 14:07:35 v0.5.0
主题(topics):
cronjob, crontab, go-cron, xxl-job, xxl-job-client, xxl-job-executor, xxljob
xxl-job/xxl-job-executor-go同语言 Go最近更新仓库
2024-11-24 20:18:09 SagerNet/sing-box
2024-11-23 10:28:20 ollama/ollama
2024-11-23 05:46:00 dolthub/dolt
2024-11-22 20:14:47 daytonaio/daytona
2024-11-22 08:53:37 AlistGo/alist
2024-11-22 02:54:58 projectdiscovery/nuclei