- update mongo model

master
李光春 2 years ago
parent f7b6e6c8bc
commit 649ace79cf

@ -119,11 +119,6 @@ func NewClient(config *ClientConfig) (*Client, error) {
c.mongoCreateCollectionTask(ctx)
c.mongoCreateIndexesTask(ctx)
c.mongoCreateCollectionTaskLog(ctx)
c.mongoCreateIndexesTaskLog(ctx)
c.mongoCreateCollectionTaskLogRun(ctx)
c.mongoCreateIndexesTaskLogRun(ctx)
c.mongoCreateCollectionTaskIssueRecord(ctx)
}
return c, nil

@ -1,6 +1,6 @@
package gojobs
const (
Version = "1.0.79"
Version = "1.0.80"
SpecifyIpNull = "0.0.0.0"
)

@ -6,27 +6,56 @@ import (
// Task 任务
type Task struct {
Id primitive.ObjectID `json:"id,omitempty" bson:"_id,omitempty"` // 记录编号
Status string `json:"status,omitempty" bson:"status,omitempty"` // 状态码
Params string `json:"params,omitempty" bson:"params,omitempty"` // 参数
ParamsType string `json:"params_type,omitempty" bson:"params_type,omitempty"` // 参数类型
StatusDesc string `json:"status_desc,omitempty" bson:"status_desc,omitempty"` // 状态描述
Frequency int64 `json:"frequency,omitempty" bson:"frequency,omitempty"` // 频率(秒单位)
Number int64 `json:"number,omitempty" bson:"number,omitempty"` // 当前次数
MaxNumber int64 `json:"max_number,omitempty" bson:"max_number,omitempty"` // 最大次数
RunId string `json:"run_id,omitempty" bson:"run_id,omitempty"` // 执行编号
CustomId string `json:"custom_id,omitempty" bson:"custom_id,omitempty"` // 自定义编号
CustomSequence int64 `json:"custom_sequence,omitempty" bson:"custom_sequence,omitempty"` // 自定义顺序
Type string `json:"type,omitempty" bson:"type,omitempty"` // 类型
TypeName string `json:"type_name,omitempty" bson:"type_name,omitempty"` // 类型名称
CreatedIp string `json:"created_ip,omitempty" bson:"created_ip,omitempty"` // 创建外网IP
SpecifyIp string `json:"specify_ip,omitempty" bson:"specify_ip,omitempty"` // 指定外网IP
UpdatedIp string `json:"updated_ip,omitempty" bson:"updated_ip,omitempty"` // 更新外网IP
Result string `json:"result,omitempty" bson:"result,omitempty"` // 结果
NextRunTime primitive.DateTime `json:"next_run_time,omitempty" bson:"next_run_time,omitempty"` // 下次运行时间
CreatedAt primitive.DateTime `json:"created_at,omitempty" bson:"created_at,omitempty"` // 创建时间
UpdatedAt primitive.DateTime `json:"updated_at,omitempty" bson:"updated_at,omitempty"` // 更新时间
DeletedAt primitive.DateTime `json:"deleted_at,omitempty" bson:"deleted_at,omitempty"` // 删除时间
Id primitive.ObjectID `json:"id,omitempty" bson:"_id,omitempty"` //【系统】记录编号
Status string `json:"status,omitempty" bson:"status,omitempty"` //【系统】状态码
Params string `json:"params,omitempty" bson:"params,omitempty"` //【系统】参数
StatusDesc string `json:"status_desc,omitempty" bson:"status_desc,omitempty"` //【系统】状态描述
Frequency int64 `json:"frequency,omitempty" bson:"frequency,omitempty"` //【系统】频率(秒单位)
Number int64 `json:"number,omitempty" bson:"number,omitempty"` //【系统】当前次数
MaxNumber int64 `json:"max_number,omitempty" bson:"max_number,omitempty"` //【系统】最大次数
RunId string `json:"run_id,omitempty" bson:"run_id,omitempty"` //【系统】执行编号
CustomId string `json:"custom_id,omitempty" bson:"custom_id,omitempty"` //【系统】自定义编号
CustomSequence int64 `json:"custom_sequence,omitempty" bson:"custom_sequence,omitempty"` //【系统】自定义顺序
Type string `json:"type,omitempty" bson:"type,omitempty"` //【系统】类型
TypeName string `json:"type_name,omitempty" bson:"type_name,omitempty"` //【系统】类型名称
SpecifyIp string `json:"specify_ip,omitempty" bson:"specify_ip,omitempty"` //【系统】指定外网IP
CreateRunInfo struct {
SystemHostName string `json:"system_host_name,omitempty" bson:"system_host_name,omitempty"` //【系统】主机名
SystemInsideIp string `json:"system_inside_ip,omitempty" bson:"system_inside_ip,omitempty"` //【系统】内网ip
SystemOs string `json:"system_os,omitempty" bson:"system_os,omitempty"` //【系统】系统类型
SystemArch string `json:"system_arch,omitempty" bson:"system_arch,omitempty"` //【系统】系统架构
SystemCpuQuantity int `json:"system_cpu_quantity,omitempty" bson:"system_cpu_quantity,omitempty"` //【系统】CPU核数
GoVersion string `json:"go_version,omitempty" bson:"go_version,omitempty"` //【程序】Go版本
SdkVersion string `json:"sdk_version,omitempty" bson:"sdk_version,omitempty"` //【程序】Sdk版本
RunTime string `json:"run_time,omitempty" bson:"run_time,omitempty"` //【系统】运行时间
RunIp string `json:"run_ip,omitempty" bson:"run_ip,omitempty"` //【系统】外网ip
RunResult string `json:"run_result,omitempty" bson:"run_result,omitempty"` //【系统】结果
} `json:"create_run_info,omitempty" bson:"create_run_info,omitempty"` //【系统】创建运行信息
CurrentRunInfo struct {
SystemHostName string `json:"system_host_name,omitempty" bson:"system_host_name,omitempty"` //【系统】主机名
SystemInsideIp string `json:"system_inside_ip,omitempty" bson:"system_inside_ip,omitempty"` //【系统】内网ip
SystemOs string `json:"system_os,omitempty" bson:"system_os,omitempty"` //【系统】系统类型
SystemArch string `json:"system_arch,omitempty" bson:"system_arch,omitempty"` //【系统】系统架构
SystemCpuQuantity int `json:"system_cpu_quantity,omitempty" bson:"system_cpu_quantity,omitempty"` //【系统】CPU核数
GoVersion string `json:"go_version,omitempty" bson:"go_version,omitempty"` //【程序】Go版本
SdkVersion string `json:"sdk_version,omitempty" bson:"sdk_version,omitempty"` //【程序】Sdk版本
RunTime string `json:"run_time,omitempty" bson:"run_time,omitempty"` //【系统】运行时间
RunIp string `json:"run_ip,omitempty" bson:"run_ip,omitempty"` //【系统】外网ip
RunResult string `json:"run_result,omitempty" bson:"run_result,omitempty"` //【系统】结果
} `json:"current_run_info,omitempty" bson:"current_run_info,omitempty"` //【系统】当前运行信息
NextRunInfo struct {
SystemHostName string `json:"system_host_name,omitempty" bson:"system_host_name,omitempty"` //【系统】主机名
SystemInsideIp string `json:"system_inside_ip,omitempty" bson:"system_inside_ip,omitempty"` //【系统】内网ip
SystemOs string `json:"system_os,omitempty" bson:"system_os,omitempty"` //【系统】系统类型
SystemArch string `json:"system_arch,omitempty" bson:"system_arch,omitempty"` //【系统】系统架构
SystemCpuQuantity int `json:"system_cpu_quantity,omitempty" bson:"system_cpu_quantity,omitempty"` //【系统】CPU核数
GoVersion string `json:"go_version,omitempty" bson:"go_version,omitempty"` //【程序】Go版本
SdkVersion string `json:"sdk_version,omitempty" bson:"sdk_version,omitempty"` //【程序】Sdk版本
RunTime string `json:"run_time,omitempty" bson:"run_time,omitempty"` //【系统】运行时间
RunIp string `json:"run_ip,omitempty" bson:"run_ip,omitempty"` //【系统】外网ip
RunResult string `json:"run_result,omitempty" bson:"run_result,omitempty"` //【系统】结果
} `json:"next_run_info,omitempty" bson:"next_run_info,omitempty"` //【系统】下一次运行信息
CurrentTime primitive.DateTime `json:"current_time,omitempty" bson:"current_time,omitempty"` //【系统】创建时间
}
func (Task) TableName() string {

@ -1,52 +0,0 @@
package jobs_mongo_model
import (
"go.dtapp.net/dorm"
"go.mongodb.org/mongo-driver/bson/primitive"
)
type TaskIssueRecordTaskInfo struct {
Id uint `json:"id,omitempty" bson:"id,omitempty"` // 记录编号
Status string `json:"status,omitempty" bson:"status,omitempty"` // 状态码
Params string `json:"params,omitempty" bson:"params,omitempty"` // 参数
ParamsType string `json:"params_type,omitempty" bson:"params_type,omitempty"` // 参数类型
StatusDesc string `json:"status_desc,omitempty" bson:"status_desc,omitempty"` // 状态描述
Frequency int64 `json:"frequency,omitempty" bson:"frequency,omitempty"` // 频率(秒单位)
Number int64 `json:"number,omitempty" bson:"number,omitempty"` // 当前次数
MaxNumber int64 `json:"max_number,omitempty" bson:"max_number,omitempty"` // 最大次数
RunId string `json:"run_id,omitempty" bson:"run_id,omitempty"` // 执行编号
CustomId string `json:"custom_id,omitempty" bson:"custom_id,omitempty"` // 自定义编号
CustomSequence int64 `json:"custom_sequence,omitempty" bson:"custom_sequence,omitempty"` // 自定义顺序
Type string `json:"type,omitempty" bson:"type,omitempty"` // 类型
TypeName string `json:"type_name,omitempty" bson:"type_name,omitempty"` // 类型名称
CreatedIp string `json:"created_ip,omitempty" bson:"created_ip,omitempty"` // 创建外网IP
SpecifyIp string `json:"specify_ip,omitempty" bson:"specify_ip,omitempty"` // 指定外网IP
UpdatedIp string `json:"updated_ip,omitempty" bson:"updated_ip,omitempty"` // 更新外网IP
Result string `json:"result,omitempty" bson:"result,omitempty"` // 结果
NextRunTime dorm.BsonTime `json:"next_run_time,omitempty" bson:"next_run_time,omitempty"` // 下次运行时间
CreatedAt dorm.BsonTime `json:"created_at,omitempty" bson:"created_at,omitempty"` // 创建时间
UpdatedAt dorm.BsonTime `json:"updated_at,omitempty" bson:"updated_at,omitempty"` // 更新时间
}
type TaskIssueRecordSystemInfo struct {
OutsideIp string `json:"outside_ip,omitempty" bson:"outside_ip,omitempty"` // 外网ip
InsideIp string `json:"inside_ip,omitempty" bson:"inside_ip,omitempty"` // 内网ip
Os string `json:"os,omitempty" bson:"os,omitempty"` // 系统类型
Arch string `json:"arch,omitempty" bson:"arch,omitempty"` // 系统架构
Gomaxprocs int `json:"gomaxprocs,omitempty" bson:"gomaxprocs,omitempty"` // CPU核数
GoVersion string `json:"go_version,omitempty" bson:"go_version,omitempty"` // GO版本
SdkVersion string `json:"sdk_version,omitempty" bson:"sdk_version,omitempty"` // SDK版本
}
// TaskIssueRecord 任务发布记录
type TaskIssueRecord struct {
Id primitive.ObjectID `json:"id,omitempty" bson:"_id,omitempty"` // 记录编号
TaskInfo TaskIssueRecordTaskInfo `json:"task_info,omitempty" bson:"task_info,omitempty"` // 任务信息
SystemInfo TaskIssueRecordSystemInfo `json:"system_info,omitempty" bson:"system_info,omitempty"` // 系统信息
RecordAddress string `json:"record_address,omitempty" bson:"record_address,omitempty"` // 接收地址
RecordTime primitive.DateTime `json:"record_time,omitempty" bson:"record_time,omitempty"` // 记录时间
}
func (TaskIssueRecord) TableName() string {
return "task_issue_record"
}

@ -1,19 +0,0 @@
package jobs_mongo_model
import (
"go.mongodb.org/mongo-driver/bson/primitive"
)
// TaskLog 任务日志模型
type TaskLog struct {
Id primitive.ObjectID `json:"id,omitempty" bson:"_id,omitempty"` // 记录编号
TaskId uint `json:"task_id,omitempty" bson:"task_id,omitempty"` // 任务编号
StatusCode int `json:"status_code,omitempty" bson:"status_code,omitempty"` // 状态码
Desc string `json:"desc,omitempty" bson:"desc,omitempty"` // 结果
Version string `json:"version,omitempty" bson:"version,omitempty"` // 版本
CreatedAt primitive.DateTime `json:"created_at,omitempty" bson:"created_at,omitempty"` // 创建时间
}
func (TaskLog) TableName() string {
return "task_log"
}

@ -1,25 +0,0 @@
package jobs_mongo_model
import (
"go.mongodb.org/mongo-driver/bson/primitive"
)
// TaskLogRun 任务执行日志模型
type TaskLogRun struct {
Id primitive.ObjectID `json:"id,omitempty" bson:"_id,omitempty"` // 记录编号
TaskId uint `json:"task_id,omitempty" bson:"task_id,omitempty"` // 任务编号
RunId string `json:"run_id,omitempty" bson:"run_id,omitempty"` // 执行编号
OutsideIp string `json:"outside_ip,omitempty" bson:"outside_ip,omitempty"` // 外网ip
InsideIp string `json:"inside_ip,omitempty" bson:"inside_ip,omitempty"` // 内网ip
Os string `json:"os,omitempty" bson:"os,omitempty"` // 系统类型
Arch string `json:"arch,omitempty" bson:"arch,omitempty"` // 系统架构
Gomaxprocs int `json:"gomaxprocs,omitempty" bson:"gomaxprocs,omitempty"` // CPU核数
GoVersion string `json:"go_version,omitempty" bson:"go_version,omitempty"` // GO版本
SdkVersion string `json:"sdk_version,omitempty" bson:"sdk_version,omitempty"` // SDK版本
MacAddrs string `json:"mac_addrs,omitempty" bson:"mac_addrs,omitempty"` // Mac地址
CreatedAt primitive.DateTime `json:"created_at,omitempty" bson:"created_at,omitempty"` // 创建时间
}
func (TaskLogRun) TableName() string {
return "task_log_run"
}

@ -38,7 +38,7 @@ func (c *Client) mongoCreateCollectionTask(ctx context.Context) {
if commandErr != nil {
c.zapLog.WithTraceId(ctx).Sugar().Errorf("检查时间序列集合:%s", commandErr)
} else {
c.zapLog.WithTraceId(ctx).Sugar().Info(c.db.mongoClient.Db.Database(c.db.mongoDatabaseName).CreateCollection(ctx, jobs_mongo_model.Task{}.TableName(), options.CreateCollection().SetTimeSeriesOptions(options.TimeSeries().SetTimeField("created_at"))))
c.zapLog.WithTraceId(ctx).Sugar().Info(c.db.mongoClient.Db.Database(c.db.mongoDatabaseName).CreateCollection(ctx, jobs_mongo_model.Task{}.TableName(), options.CreateCollection().SetTimeSeriesOptions(options.TimeSeries().SetTimeField("current_time"))))
}
}
@ -56,90 +56,7 @@ func (c *Client) mongoCreateIndexesTask(ctx context.Context) {
c.zapLog.WithTraceId(ctx).Sugar().Info(c.db.mongoClient.Db.Database(c.db.mongoDatabaseName).Collection(jobs_mongo_model.Task{}.TableName()).Indexes().CreateOne(ctx, mongo.IndexModel{Keys: bson.D{
{"type", 1},
}}))
c.zapLog.WithTraceId(ctx).Sugar().Info(c.db.mongoClient.Db.Database(c.db.mongoDatabaseName).Collection(jobs_mongo_model.Task{}.TableName()).Indexes().CreateOne(ctx, mongo.IndexModel{Keys: bson.D{
{"created_ip", 1},
}}))
c.zapLog.WithTraceId(ctx).Sugar().Info(c.db.mongoClient.Db.Database(c.db.mongoDatabaseName).Collection(jobs_mongo_model.Task{}.TableName()).Indexes().CreateOne(ctx, mongo.IndexModel{Keys: bson.D{
{"specify_ip", 1},
}}))
c.zapLog.WithTraceId(ctx).Sugar().Info(c.db.mongoClient.Db.Database(c.db.mongoDatabaseName).Collection(jobs_mongo_model.Task{}.TableName()).Indexes().CreateOne(ctx, mongo.IndexModel{Keys: bson.D{
{"updated_ip", 1},
}}))
}
// 创建时间序列集合
func (c *Client) mongoCreateCollectionTaskLog(ctx context.Context) {
var commandResult bson.M
commandErr := c.db.mongoClient.Db.Database(c.db.mongoDatabaseName).RunCommand(ctx, bson.D{{
"listCollections", 1,
}}).Decode(&commandResult)
if commandErr != nil {
c.zapLog.WithTraceId(ctx).Sugar().Errorf("检查时间序列集合:%s", commandErr)
} else {
c.zapLog.WithTraceId(ctx).Sugar().Info(c.db.mongoClient.Db.Database(c.db.mongoDatabaseName).CreateCollection(ctx, jobs_mongo_model.TaskLog{}.TableName(), options.CreateCollection().SetTimeSeriesOptions(options.TimeSeries().SetTimeField("created_at"))))
}
}
// 创建索引
func (c *Client) mongoCreateIndexesTaskLog(ctx context.Context) {
c.zapLog.WithTraceId(ctx).Sugar().Info(c.db.mongoClient.Db.Database(c.db.mongoDatabaseName).Collection(jobs_mongo_model.TaskLog{}.TableName()).Indexes().CreateOne(ctx, mongo.IndexModel{Keys: bson.D{
{"task_id", -1},
}}))
c.zapLog.WithTraceId(ctx).Sugar().Info(c.db.mongoClient.Db.Database(c.db.mongoDatabaseName).Collection(jobs_mongo_model.TaskLog{}.TableName()).Indexes().CreateOne(ctx, mongo.IndexModel{Keys: bson.D{
{"status_code", -1},
}}))
c.zapLog.WithTraceId(ctx).Sugar().Info(c.db.mongoClient.Db.Database(c.db.mongoDatabaseName).Collection(jobs_mongo_model.TaskLog{}.TableName()).Indexes().CreateOne(ctx, mongo.IndexModel{Keys: bson.D{
{"version", -1},
}}))
}
// 创建时间序列集合
func (c *Client) mongoCreateCollectionTaskLogRun(ctx context.Context) {
var commandResult bson.M
commandErr := c.db.mongoClient.Db.Database(c.db.mongoDatabaseName).RunCommand(ctx, bson.D{{
"listCollections", 1,
}}).Decode(&commandResult)
if commandErr != nil {
c.zapLog.WithTraceId(ctx).Sugar().Errorf("检查时间序列集合:%s", commandErr)
} else {
c.zapLog.WithTraceId(ctx).Sugar().Info(c.db.mongoClient.Db.Database(c.db.mongoDatabaseName).CreateCollection(ctx, jobs_mongo_model.TaskLogRun{}.TableName(), options.CreateCollection().SetTimeSeriesOptions(options.TimeSeries().SetTimeField("created_at"))))
}
}
// 创建索引
func (c *Client) mongoCreateIndexesTaskLogRun(ctx context.Context) {
c.zapLog.WithTraceId(ctx).Sugar().Info(c.db.mongoClient.Db.Database(c.db.mongoDatabaseName).Collection(jobs_mongo_model.TaskLogRun{}.TableName()).Indexes().CreateOne(ctx, mongo.IndexModel{Keys: bson.D{
{"task_id", -1},
}}))
c.zapLog.WithTraceId(ctx).Sugar().Info(c.db.mongoClient.Db.Database(c.db.mongoDatabaseName).Collection(jobs_mongo_model.TaskLogRun{}.TableName()).Indexes().CreateOne(ctx, mongo.IndexModel{Keys: bson.D{
{"run_id", -1},
}}))
c.zapLog.WithTraceId(ctx).Sugar().Info(c.db.mongoClient.Db.Database(c.db.mongoDatabaseName).Collection(jobs_mongo_model.TaskLogRun{}.TableName()).Indexes().CreateOne(ctx, mongo.IndexModel{Keys: bson.D{
{"outside_ip", -1},
}}))
c.zapLog.WithTraceId(ctx).Sugar().Info(c.db.mongoClient.Db.Database(c.db.mongoDatabaseName).Collection(jobs_mongo_model.TaskLogRun{}.TableName()).Indexes().CreateOne(ctx, mongo.IndexModel{Keys: bson.D{
{"inside_ip", -1},
}}))
c.zapLog.WithTraceId(ctx).Sugar().Info(c.db.mongoClient.Db.Database(c.db.mongoDatabaseName).Collection(jobs_mongo_model.TaskLogRun{}.TableName()).Indexes().CreateOne(ctx, mongo.IndexModel{Keys: bson.D{
{"os", -1},
}}))
c.zapLog.WithTraceId(ctx).Sugar().Info(c.db.mongoClient.Db.Database(c.db.mongoDatabaseName).Collection(jobs_mongo_model.TaskLogRun{}.TableName()).Indexes().CreateOne(ctx, mongo.IndexModel{Keys: bson.D{
{"arch", -1},
}}))
c.zapLog.WithTraceId(ctx).Sugar().Info(c.db.mongoClient.Db.Database(c.db.mongoDatabaseName).Collection(jobs_mongo_model.TaskLogRun{}.TableName()).Indexes().CreateOne(ctx, mongo.IndexModel{Keys: bson.D{
{"go_version", -1},
}}))
}
// 创建时间序列集合
func (c *Client) mongoCreateCollectionTaskIssueRecord(ctx context.Context) {
var commandResult bson.M
commandErr := c.db.mongoClient.Db.Database(c.db.mongoDatabaseName).RunCommand(ctx, bson.D{{
"listCollections", 1,
}}).Decode(&commandResult)
if commandErr != nil {
c.zapLog.WithTraceId(ctx).Sugar().Errorf("检查时间序列集合:%s", commandErr)
} else {
c.zapLog.WithTraceId(ctx).Sugar().Info(c.db.mongoClient.Db.Database(c.db.mongoDatabaseName).CreateCollection(ctx, jobs_mongo_model.TaskIssueRecord{}.TableName(), options.CreateCollection().SetTimeSeriesOptions(options.TimeSeries().SetTimeField("record_time"))))
}
}

Loading…
Cancel
Save