整体架构
xin-job-admin 调度平台,读取数据库任务,发起调度 custom-server 执行器服务,客户自行实现,依赖 xin-job-client,由 xin-job-client 与 xin-job-admin 进行网络交互,执行定时任务
初始化代码
- 创建项目目录
create xin-job
cd xin-job
create admin
create core
create client
create example
2. 创建项目
cd xin-job/admin
go mod init
cd xin-job/core
go mod init
cd xin-job/client
go mod init
cd xin-job/example
go mod init
3. 配置项目依赖,使用 go work ,go 版本必须在 1.18 以上
cd xin-job/core
mkdir biz
touch model.go
// biz/model.go
package biz
// 用于测试其他模块依赖 core 是否能依赖成功
type Return[T any] struct {
Code uint8
Msg string
Content T
}
cd xin-job/admin
go work init
go work use ./ ../core
执行完以上命令,xin-job/admin 目录下会生成 go.work 文件,打开文件后内容为以下内容
其中 use 意思就是依赖当前项目 . 以及上级目录中的 core
go 1.22.0
use (
.
../core
)
cd xin-job/admin
touch main.go
package main
import (
"fmt"
"xin-job/core/biz"
)
func main() {
r := biz.Return[string]{Msg: "success",Code: 200,Content: "success"}
fmt.Println(r)
}
cd xin-job/admin
go run main.go
控制台打印内容为 {200 success success}
go work 使用参考: 【【go小知识】go1.18新功能workspace,非常有用和实用】 www.bilibili.com/video/BV1eY…
本文所有代码
xin-job: golang 实现 xin-job 垃圾版 (gitee.com) 下的 xin-job-00.tar.gz