https://github.com/snowlyg/iris-admin-job
iris-admin-job
https://github.com/snowlyg/iris-admin-job
Last synced: 9 months ago
JSON representation
iris-admin-job
- Host: GitHub
- URL: https://github.com/snowlyg/iris-admin-job
- Owner: snowlyg
- License: apache-2.0
- Created: 2022-01-02T04:08:33.000Z (almost 4 years ago)
- Default Branch: main
- Last Pushed: 2023-02-17T06:24:23.000Z (almost 3 years ago)
- Last Synced: 2025-01-25T05:26:40.375Z (11 months ago)
- Language: Go
- Size: 439 KB
- Stars: 2
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
IrisAdminJob
[IrisAdminJob](https://www.github.com/snowlyg/iris-admin-job) 项目为一个任务管模块插件,可以为 [IrisAdmin](https://www.github.com/snowlyg/iris-admin) 项目快速集成任务管理API.
[](https://app.travis-ci.com/snowlyg/iris-admin-job)
[](https://github.com/snowlyg/iris-admin-job/blob/main/LICENSE)
[](https://godoc.org/github.com/snowlyg/iris-admin-job)
[](https://goreportcard.com/badge/github.com/snowlyg/iris-admin-job)
[](https://codecov.io/gh/snowlyg/iris-admin-job)
##### 下载
```sh
go get -u github.com/snowlyg/iris-admin-job@latest
```
##### 简单使用
- only for gin
```go
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)
}
```
#### 添加任务
```go
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
}
```
##### 启动任务
```go
job.BuiltinJobs.AddBuiltinJob("yourJobRun", "@every 1m", "yourJobRun", &YourJob{})
job.StartJob()
```
##### 单次任务
```go
// run your job after 2 second
job.OnceJob(&YourJob{},2*time.Second)
job.StartJob()
```
#### 接口说明
```txt
GET /job/list // 列表
POST /job/modifyStatus/:id //更新状态
POST /job/modifyJobSpec/:id //更新任务条件
GET /job/execJob/:id // 执行任务
```