Categorygithub.com/snowlyg/iris-admin-job
repositorypackage
0.0.67
Repository: https://github.com/snowlyg/iris-admin-job.git
Documentation: pkg.go.dev

# Packages

No description provided by the author

# README

IrisAdminJob

IrisAdminJob 项目为一个任务管模块插件,可以为 IrisAdmin 项目快速集成任务管理API.

Build Status LICENSE go doc go report Build Status

下载
  go get -u github.com/snowlyg/iris-admin-job@latest
简单使用
  • only for gin
package main

import (
	job_gin "github.com/snowlyg/iris-admin-job/gin"
	"github.com/snowlyg/iris-admin-job/gin/job"
	"github.com/snowlyg/iris-admin/server/web"
	"github.com/snowlyg/iris-admin/server/web/web_gin"
	"github.com/snowlyg/iris-admin/server/zap_server"
)

func main() {
	wi := web_gin.Init()
	v1 := wi.GetRouterGroup("/api/v1")
	{
		job_gin.Party(v1)
	}
	go func() {
		job.BuiltinJobs.AddBuiltinJob("yourJobRun", "@every 1m", "yourJobRun", &YourJob{})
		job.StartJob()
	}()
	web.Start(wi)
}

添加任务

package job

import (
  "github.com/snowlyg/iris-admin/server/zap_server"
    "github.com/snowlyg/iris-admin-job/gin/job"
)

type YourJob struct {
  Name string
  // ....
}

func (j *YourJob) Run() {
  var message string
  err := yourJobRun()
  if err != nil {
    message = err.Error()
  }
  err = job.UpdateExecInfo(j.Name, message)
  if err != nil {
    zap_server.ZAPLOG.Error(err.Error())
  }
}

// yourJobRun
func yourJobRun() error {
  // do something here...
  return nil
}

启动任务
  job.BuiltinJobs.AddBuiltinJob("yourJobRun", "@every 1m", "yourJobRun", &YourJob{})
  job.StartJob()
单次任务
  // run your job after 2 second 
  job.OnceJob(&YourJob{},2*time.Second)
  job.StartJob()

接口说明

GET /job/list // 列表
POST /job/modifyStatus/:id //更新状态
POST /job/modifyJobSpec/:id //更新任务条件
GET /job/execJob/:id // 执行任务