xxl-job-executor的gin中間件
背景
xxl-job-executor-go是xxl-job的golang執(zhí)行器矫渔,可以獨立運行添诉,有時候我們要與項目或者框架(如:gin框架)集成起來合并為一個服務,本項目因此而生。
本項目地址
https://github.com/gin-middleware/xxl-job-executor
執(zhí)行器項目地址
https://github.com/xxl-job/xxl-job-executor-go
與gin集成示例
package main
import (
"github.com/gin-gonic/gin"
"github.com/gin-middleware/xxl-job-executor"
"github.com/xxl-job/xxl-job-executor-go"
"github.com/xxl-job/xxl-job-executor-go/example/task"
"log"
)
const Port = "9999"
func main() {
//初始化執(zhí)行器
exec := xxl.NewExecutor(
xxl.ServerAddr("http://127.0.0.1/xxl-job-admin"),
xxl.AccessToken(""), //請求令牌(默認為空)
xxl.ExecutorIp("127.0.0.1"), //可自動獲取
xxl.ExecutorPort(Port), //默認9999(此處要與gin服務啟動port必需一至)
xxl.RegistryKey("golang-jobs"), //執(zhí)行器名稱
)
exec.Init()
//添加到gin路由
r := gin.Default()
xxl_job_executor_gin.XxlJobMux(r, exec)
//注冊gin的handler
r.GET("ping", func(cxt *gin.Context) {
cxt.JSON(200, "pong")
})
//注冊任務handler
exec.RegTask("task.test", task.Test)
exec.RegTask("task.test2", task.Test2)
exec.RegTask("task.panic", task.Panic)
log.Fatal(r.Run(":" + Port))
}