xxl-job go client
xxj-job 是一个 Java 实现的轻量级分布式任务调度平台,具体实现与使用请参考https://github.com/xuxueli/xxl-job,原版执行器亦要求 Java 平台,但公司部分项目是 golang 开发,所以自己实现了 go 版本的执行器。
详细步骤请参考https://github.com/xuxueli/xxl-job, 此处不再描述 admin 的部署。
go get github.com/feixiaobo/go-xxl-job-client/v2
func XxlJobTest(ctx context.Context) error {
logger.Info(ctx, "golang job run success >>>>>>>>>>>>>>")
logger.Info(ctx, "the input param:", xxl.GetParam(ctx, "name"))
return nil
}
client := xxl.NewXxlClient(
option.WithAppName("go-example"),
option.WithEnableHttp(true), //xxl_job v2.2.0版本及以后
option.WithClientPort(8083),
) //构建客户端
client.RegisterJob("testJob", JobTest) //注册任务
client.Run() //启动客户端
添加完成后启动在任务管理菜单中查看任务
logger.Info(ctx, "golang job run success >>>>>>>>>>>>>>")
param, _ := xxl.GetParam(ctx, "name") //获取输入参数
logger.Info(ctx, "the input param:", param)
shardingIdx, shardingTotal := xxl.GetSharding(ctx) //获取分片参数
logger.Info(ctx, "the sharding param: idx:", shardingIdx, ", total:", shardingTotal)
在调度日志中点击执行日志查看任务执行日志。
xxl_job_admin地址不通或者accessToken错误,请检查是否配置了AdminAddress
xxl_job_admin v2.2.0之后和客户端通信采用http/https通信。需在client端开启http协议,在client option中构造 option.WithEnableHttp(true), 参考 example下client_test。 旧版本请不要添加这个option