Skip to content

snowlyg/iris-admin-job

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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 // 执行任务