master v1.0.105
李光春 2 years ago
parent 625deb44ca
commit 11884afa4f

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

@ -8,7 +8,7 @@ require (
github.com/robfig/cron/v3 v3.0.1
go.dtapp.net/dorm v1.0.42
go.dtapp.net/goip v1.0.38
go.dtapp.net/golog v1.0.92
go.dtapp.net/golog v1.0.94
go.dtapp.net/gostring v1.0.10
go.dtapp.net/gotime v1.0.5
go.dtapp.net/gotrace_id v1.0.6
@ -82,7 +82,7 @@ require (
go.uber.org/zap v1.23.0 // indirect
golang.org/x/crypto v0.0.0-20220919173607-35f4265a4bc0 // indirect
golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4 // indirect
golang.org/x/net v0.0.0-20220920203100-d0c6ba3f52d9 // indirect
golang.org/x/net v0.0.0-20220921203646-d300de134e69 // indirect
golang.org/x/sync v0.0.0-20220907140024-f12130a52804 // indirect
golang.org/x/sys v0.0.0-20220919091848-fb04ddd9f9c8 // indirect
golang.org/x/text v0.3.7 // indirect

@ -507,8 +507,8 @@ go.dtapp.net/dorm v1.0.42 h1:bugzTYBr5goLDf9s8vft6xG/fAiinLm1jo+9uFD7JRM=
go.dtapp.net/dorm v1.0.42/go.mod h1:LCy6tqg7uClOhMb8zgF9x9mTFoVd9Ud40g9a2Z6bbwM=
go.dtapp.net/goip v1.0.38 h1:WHIqXV0qWUM9XDtRaMIMyCKWyd9dWfSvSRdDr7vF7xU=
go.dtapp.net/goip v1.0.38/go.mod h1:N2YFFr2OO+5VQwMqyKtg7c4MVrDJOoog/QmIvYUfi1c=
go.dtapp.net/golog v1.0.92 h1:LbkCNxT7AJUmbXQPaQzWO+b8/dDK4s4FOtZ9ZtVXKOI=
go.dtapp.net/golog v1.0.92/go.mod h1:3AGlz/yrCNMD0RSKThQaTSwZHkMnlgeBlLJ9voTvaZY=
go.dtapp.net/golog v1.0.94 h1:pRvnGpAcM+J976PAxmNiHxJ6AGCvRCo7kkHyzjmKSlE=
go.dtapp.net/golog v1.0.94/go.mod h1:fQLLDTe2jOdps4p+42pd7a/nL1FzWpQgI71zz8jGtvA=
go.dtapp.net/gorandom v1.0.1 h1:IWfMClh1ECPvyUjlqD7MwLq4mZdUusD1qAwAdsvEJBs=
go.dtapp.net/gorandom v1.0.1/go.mod h1:ZPdgalKpvFV/ATQqR0k4ns/F/IpITAZpx6WkWirr5Y8=
go.dtapp.net/gorequest v1.0.31 h1:r/OoU5Y00TbJjkQtpvwjsb/pllqO0UQQjFRY1veZYZc=
@ -602,8 +602,8 @@ golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLL
golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
golang.org/x/net v0.0.0-20220920203100-d0c6ba3f52d9 h1:asZqf0wXastQr+DudYagQS8uBO8bHKeYD1vbAvGmFL8=
golang.org/x/net v0.0.0-20220920203100-d0c6ba3f52d9/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk=
golang.org/x/net v0.0.0-20220921203646-d300de134e69 h1:hUJpGDpnfwdJW8iNypFjmSY0sCBEL+spFTZ2eO+Sfps=
golang.org/x/net v0.0.0-20220921203646-d300de134e69/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk=
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=

@ -1,28 +0,0 @@
package jobs_mongo_model
import (
"go.dtapp.net/dorm"
"go.mongodb.org/mongo-driver/bson/primitive"
)
// TaskLog 任务日志模型
type TaskLog struct {
LogId primitive.ObjectID `json:"log_id,omitempty" bson:"_id,omitempty"` //【记录】编号
LogTime primitive.DateTime `json:"log_time,omitempty" bson:"log_time"` //【记录】时间
TaskId uint `json:"task_id,omitempty" bson:"task_id,omitempty"` //【任务】编号
TaskRunId string `json:"task_run_id,omitempty" bson:"task_run_id,omitempty"` //【任务】执行编号
TaskResultCode int `json:"task_result_code,omitempty" bson:"task_result_code,omitempty"` //【任务】执行状态码
TaskResultDesc string `json:"task_result_desc,omitempty" bson:"task_result_desc,omitempty"` //【任务】执行结果
TaskResultTime dorm.BsonTime `json:"task_result_time,omitempty" bson:"task_result_time,omitempty"` //【任务】执行时间
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"` //【系统】系统架构
GoVersion string `json:"go_version,omitempty" bson:"go_version,omitempty"` //【系统】go版本
SdkVersion string `json:"sdk_version,omitempty" bson:"sdk_version,omitempty"` //【系统】sdk版本
SystemOutsideIp string `json:"system_outside_ip,omitempty" bson:"system_outside_ip,omitempty"` //【系统】外网ip
}
func (TaskLog) CollectionName() string {
return "task_log"
}

@ -3,7 +3,6 @@ package gojobs
import (
"context"
"go.dtapp.net/gojobs/jobs_gorm_model"
"go.dtapp.net/gojobs/jobs_mongo_model"
"go.dtapp.net/gotime"
"go.mongodb.org/mongo-driver/bson"
"go.mongodb.org/mongo-driver/bson/primitive"
@ -39,12 +38,12 @@ func (c *Client) GormTaskLogDelete(ctx context.Context, hour int64) error {
// MongoTaskLogDelete 删除
func (c *Client) MongoTaskLogDelete(ctx context.Context, hour int64) (*mongo.DeleteResult, error) {
filter := bson.D{{"log_time", bson.D{{"$lt", primitive.NewDateTimeFromTime(gotime.Current().BeforeHour(hour).Time)}}}}
return c.mongoClient.Database(c.mongoConfig.databaseName).Collection(jobs_mongo_model.TaskLog{}.CollectionName()).DeleteMany(ctx, filter)
return c.mongoClient.Database(c.mongoConfig.databaseName).Collection(TaskLog{}.CollectionName()).DeleteMany(ctx, filter)
}
// 创建时间序列集合
func (c *Client) mongoCreateCollectionTaskLog(ctx context.Context) {
err := c.mongoClient.Database(c.mongoConfig.databaseName).CreateCollection(ctx, jobs_mongo_model.TaskLog{}.CollectionName(), options.CreateCollection().SetTimeSeriesOptions(options.TimeSeries().SetTimeField("log_time")))
err := c.mongoClient.Database(c.mongoConfig.databaseName).CreateCollection(ctx, TaskLog{}.CollectionName(), options.CreateCollection().SetTimeSeriesOptions(options.TimeSeries().SetTimeField("log_time")))
if err != nil {
c.zapLog.WithTraceId(ctx).Sugar().Errorf("创建时间序列集合:%s", err)
}
@ -52,7 +51,7 @@ func (c *Client) mongoCreateCollectionTaskLog(ctx context.Context) {
// 创建索引
func (c *Client) mongoCreateIndexesTaskLog(ctx context.Context) {
_, err := c.mongoClient.Database(c.mongoConfig.databaseName).Collection(jobs_mongo_model.TaskLog{}.CollectionName()).CreateManyIndexes(ctx, []mongo.IndexModel{{
_, err := c.mongoClient.Database(c.mongoConfig.databaseName).Collection(TaskLog{}.CollectionName()).CreateManyIndexes(ctx, []mongo.IndexModel{{
Keys: bson.D{{
Key: "log_time",
Value: -1,

@ -0,0 +1,34 @@
package gojobs
import (
"go.dtapp.net/dorm"
"go.mongodb.org/mongo-driver/bson/primitive"
)
// TaskLog 任务日志模型
type TaskLog struct {
LogId primitive.ObjectID `json:"log_id,omitempty" bson:"_id,omitempty"` //【记录】编号
LogTime primitive.DateTime `json:"log_time,omitempty" bson:"log_time"` //【记录】时间
Task struct {
Id uint `json:"id,omitempty" bson:"id,omitempty"` //【任务】编号
RunId string `json:"run_id,omitempty" bson:"run_id,omitempty"` //【任务】执行编号
ResultCode int `json:"result_code,omitempty" bson:"result_code,omitempty"` //【任务】执行状态码
ResultDesc string `json:"result_desc,omitempty" bson:"result_desc,omitempty"` //【任务】执行结果
ResultTime dorm.BsonTime `json:"result_time,omitempty" bson:"result_time,omitempty"` //【任务】执行时间
} `json:"task,omitempty" bson:"task,omitempty"` //【任务】信息
System struct {
HostName string `json:"host_name,omitempty" bson:"host_name,omitempty"` //【系统】主机名
InsideIp string `json:"inside_ip,omitempty" bson:"inside_ip,omitempty"` //【系统】内网ip
OutsideIp string `json:"outside_ip,omitempty" bson:"outside_ip,omitempty"` //【系统】外网ip
Os string `json:"os,omitempty" bson:"os,omitempty"` //【系统】系统类型
Arch string `json:"arch,omitempty" bson:"arch,omitempty"` //【系统】系统架构
} `json:"system,omitempty" bson:"system,omitempty"` //【系统】信息
Version struct {
Go string `json:"go,omitempty" bson:"go,omitempty"` //【程序】Go版本
Sdk string `json:"sdk,omitempty" bson:"sdk,omitempty"` //【程序】Sdk版本
} `json:"version,omitempty" bson:"version,omitempty"` //【程序】版本信息
}
func (TaskLog) CollectionName() string {
return "task_log"
}

@ -4,7 +4,6 @@ import (
"context"
"go.dtapp.net/dorm"
"go.dtapp.net/gojobs/jobs_gorm_model"
"go.dtapp.net/gojobs/jobs_mongo_model"
"go.dtapp.net/gotime"
"go.dtapp.net/gotrace_id"
"go.mongodb.org/mongo-driver/bson/primitive"
@ -33,22 +32,28 @@ func (c *Client) Run(ctx context.Context, task jobs_gorm_model.Task, taskResultC
SystemOutsideIp: c.config.systemOutsideIp,
})
if c.mongoConfig.stats {
c.mongoClient.Database(c.mongoConfig.databaseName).Collection(jobs_mongo_model.TaskLog{}.CollectionName()).InsertOne(ctx, jobs_mongo_model.TaskLog{
LogId: primitive.NewObjectID(),
LogTime: primitive.NewDateTimeFromTime(gotime.Current().Time),
TaskId: task.Id,
TaskRunId: runId,
TaskResultCode: taskResultCode,
TaskResultDesc: taskResultDesc,
TaskResultTime: dorm.NewBsonTimeCurrent(),
SystemHostName: c.config.systemHostName,
SystemInsideIp: c.config.systemInsideIp,
SystemOs: c.config.systemOs,
SystemArch: c.config.systemArch,
GoVersion: c.config.goVersion,
SdkVersion: c.config.sdkVersion,
SystemOutsideIp: c.config.systemOutsideIp,
})
taskLog := TaskLog{
LogId: primitive.NewObjectID(),
LogTime: primitive.NewDateTimeFromTime(gotime.Current().Time),
}
taskLog.Task.Id = task.Id
taskLog.Task.RunId = runId
taskLog.Task.ResultCode = taskResultCode
taskLog.Task.ResultDesc = taskResultDesc
taskLog.Task.ResultTime = dorm.NewBsonTimeCurrent()
taskLog.System.HostName = c.config.systemHostName
taskLog.System.InsideIp = c.config.systemInsideIp
taskLog.System.OutsideIp = c.config.systemOutsideIp
taskLog.System.Os = c.config.systemOs
taskLog.System.Arch = c.config.systemArch
taskLog.Version.Go = c.config.goVersion
taskLog.Version.Sdk = c.config.sdkVersion
c.mongoClient.Database(c.mongoConfig.databaseName).Collection(TaskLog{}.CollectionName()).InsertOne(ctx, taskLog)
}
switch taskResultCode {

Loading…
Cancel
Save