提交 8679333b authored 作者: mooncake9527's avatar mooncake9527

modify xcron

上级 cde19359
...@@ -75,12 +75,7 @@ func New(h func() *gin.Engine) *Application { ...@@ -75,12 +75,7 @@ func New(h func() *gin.Engine) *Application {
} }
} }
// init logger,trace,stat,database,cache,rd... func initTrace(conf *config.Config) {
func initOthers() (err error) {
conf := config.Cfg
if err := initLogger(conf); err != nil {
return err
}
if conf.App.Middleware.Trace.Enable { if conf.App.Middleware.Trace.Enable {
tracer.InitWithConfig( tracer.InitWithConfig(
conf.App.Name, conf.App.Name,
...@@ -92,7 +87,9 @@ func initOthers() (err error) { ...@@ -92,7 +87,9 @@ func initOthers() (err error) {
) )
logger.Info("[tracer] initialized") logger.Info("[tracer] initialized")
} }
}
func initState(conf *config.Config) {
if conf.App.Middleware.EnableStat { if conf.App.Middleware.EnableStat {
stat.Init( stat.Init(
stat.WithLog(logger.Get()), stat.WithAlarm(), stat.WithLog(logger.Get()), stat.WithAlarm(),
...@@ -100,24 +97,37 @@ func initOthers() (err error) { ...@@ -100,24 +97,37 @@ func initOthers() (err error) {
) )
logger.Info("[resource statistics] initialized") logger.Info("[resource statistics] initialized")
} }
}
func initRd(conf *config.Config) error {
rdType := conf.Rd.Type
if rdType == "nacos" {
if err := nacosRegisterInstance(); err != nil {
return err
}
logger.Info("[rd] initialized.")
}
return nil
}
// init logger,trace,stat,database,cache,rd...
func initOthers() (err error) {
ctx := context.TODO() ctx := context.TODO()
conf := config.Cfg
if err := initLogger(conf); err != nil {
return err
}
initTrace(conf)
initState(conf)
if err := database.InitDB(); err != nil { if err := database.InitDB(); err != nil {
return err return err
} }
eventbus.Eb.Publish(ctx, eventbus.TopicDBInitFinish) eventbus.Eb.Publish(ctx, eventbus.TopicDBInitFinish)
logger.Info("[database] initialized")
database.InitCache(conf.App.CacheType) database.InitCache(conf.App.CacheType)
eventbus.Eb.Publish(ctx, eventbus.TopicCacheInitFinish) eventbus.Eb.Publish(ctx, eventbus.TopicCacheInitFinish)
if conf.App.CacheType != "" { if err := initRd(conf); err != nil {
logger.Info(fmt.Sprintf("[cache-%s] initialized", conf.App.CacheType))
}
rdType := conf.Rd.Type
if rdType == "nacos" {
if err := nacosRegisterInstance(); err != nil {
return err return err
} }
logger.Info("[rd] initialized.")
}
eventbus.Eb.Publish(ctx, eventbus.TopicCoreInitFinish) eventbus.Eb.Publish(ctx, eventbus.TopicCoreInitFinish)
return nil return nil
} }
......
app:
name: "operator-admin"
env: "dev"
version: "v0.0.1"
host: "0.0.0.0"
enableStat: false
enableMetrics: true
enableHTTPProfile: true
enableLimit: false
enableCircuitBreaker: false
enableTrace: false
tracingSamplingRate: 1.0
registryDiscoveryType: "consul" # local nacos consul
cacheType: "memory" # memory redis
ipRateLimiter:
enable: true
window: 1m
maxRequests: 600
sync: true
oss:
endpoint: https://oss-cn-hangzhou.aliyuncs.com
access-key-id: LTAI5tD3VA4pi1pcz48yYgXL
access-key-secret: sus17wfcbjB6J9hDeJXXFtJf9LPN0S
bucket-name: test-wz-main
base-path: fota/upgrade
region-id: oss-cn-hangzhou
bucket-url: https://test-wz-main.oss-cn-hangzhou.aliyuncs.com
http:
port: 9001
timeout: 0
logger:
level: "debug"
format: "console"
isSave: true
logFileConfig:
filename: "/tmp/operator-admin.log"
maxSize: 100
maxBackups: 100000
maxAge: 360
isCompression: true
database:
- name: "wz_qitu"
driver: "mysql"
default: true
mysql:
dsn: "root:123456@tcp(localhost:30006)/wz_qitu?parseTime=true&loc=Local&charset=utf8,utf8mb4"
enableLog: true
maxIdleConns: 10
maxOpenConns: 100
connMaxLifetime: 30
redis:
dsn: "default:password123@localhost:30079/6"
dialTimeout: 10
readTimeout: 2
writeTimeout: 2
oss:
endpoint: https://oss-cn-hangzhou.aliyuncs.com # 外网
access-key-id: LTAI5tD3VA4pi1pcz48yYgXL
access-key-secret: sus17wfcbjB6J9hDeJXXFtJf9LPN0S
bucket-name: prod-qitu
base-path: baofu
region: oss-cn-hangzhou
bucket-url: https://prod-qitu.oss-cn-hangzhou.aliyuncs.com
auth:
enable: true
expire: 6h
signKey: PEaWWIxffGpp8Dfl3z5SjE5WeeDStc1T
cron:
enable: true
...@@ -5,6 +5,7 @@ import ( ...@@ -5,6 +5,7 @@ import (
"strings" "strings"
"gitlab.wanzhuangkj.com/tush/xpkg/config" "gitlab.wanzhuangkj.com/tush/xpkg/config"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/logger"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/sgorm" "gitlab.wanzhuangkj.com/tush/xpkg/pkg/sgorm"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/xerrors/xerror" "gitlab.wanzhuangkj.com/tush/xpkg/pkg/xerrors/xerror"
) )
...@@ -19,21 +20,6 @@ func InitDB() (err error) { ...@@ -19,21 +20,6 @@ func InitDB() (err error) {
config.Read(func(c *config.Config) { config.Read(func(c *config.Config) {
databases = c.Database databases = c.Database
}) })
// if len(databases) == 1 {
// consts.DefaultSchema = databases[0].Name
// } else {
// found := false
// for _, db := range databases {
// if db.Default {
// consts.DefaultSchema = db.Name
// found = true
// }
// }
// if !found {
// consts.DefaultSchema = databases[0].Name
// }
// }
// logger.Info("[database] default schema: " + consts.DefaultSchema)
for _, db := range databases { for _, db := range databases {
switch strings.ToLower(db.Driver) { switch strings.ToLower(db.Driver) {
case sgorm.DBDriverMysql, sgorm.DBDriverTidb: case sgorm.DBDriverMysql, sgorm.DBDriverTidb:
...@@ -47,7 +33,7 @@ func InitDB() (err error) { ...@@ -47,7 +33,7 @@ func InitDB() (err error) {
"Refer to https://xmall/blob/main/configs/xmall.yml#L85") "Refer to https://xmall/blob/main/configs/xmall.yml#L85")
} }
} }
logger.Info("[database] initialized")
return nil return nil
} }
......
package database package database
import ( import (
"fmt"
"sync" "sync"
"time" "time"
...@@ -41,6 +42,9 @@ func InitCache(cType string) { ...@@ -41,6 +42,9 @@ func InitCache(cType string) {
if cType == "memory" { if cType == "memory" {
memoryCache = newMemoryCache() memoryCache = newMemoryCache()
} }
if cType != "" {
logger.Info(fmt.Sprintf("[cache-%s] initialized", cType))
}
} }
func newMemoryCache() *ristretto.Cache { func newMemoryCache() *ristretto.Cache {
......
package xcommon
import (
"github.com/swaggo/swag"
"gitlab.wanzhuangkj.com/tush/xpkg/xcommon/api"
)
func Init(apiSpec *swag.Spec) (err error) {
if err := api.Spec(apiSpec); err != nil {
return err
}
return nil
}
...@@ -166,6 +166,84 @@ func (x *cronJobController) GetByID(c *gin.Context) { ...@@ -166,6 +166,84 @@ func (x *cronJobController) GetByID(c *gin.Context) {
response.Success(c, data) response.Success(c, data)
} }
func (x *cronJobController) StartByID(c *gin.Context) {
in := &request.BaseIDReq{}
if err := x.Bind(c, in); err != nil {
response.Error(c, err)
return
}
cj, err := service.CronJobService.GetByID(ctxUtils.WrapCtx(c), in.ID, nil)
if err != nil {
response.Error(c, err)
return
}
ctx := ctxUtils.WrapCtx(c)
job, err := service.CronJobService.GetByJobCode(ctx, cj.JobCode, &biz.CronJobOpts{})
if err != nil {
response.Error(c, err)
return
}
if err := service.CronJobService.StartByID(ctx, job.ID, nil); err != nil {
response.Error(c, err)
return
}
gocron.Add(&gocron.Task{
TimeSpec: job.TimeSpec,
Name: job.JobCode,
Fn: func() {
ExecJob(context.TODO(), job)
},
})
response.Success(c)
}
func (x *cronJobController) StopByID(c *gin.Context) {
in := &request.BaseIDReq{}
if err := x.Bind(c, in); err != nil {
response.Error(c, err)
return
}
cj, err := service.CronJobService.GetByID(ctxUtils.WrapCtx(c), in.ID, nil)
if err != nil {
response.Error(c, err)
return
}
job, err := service.CronJobService.GetByJobCode(ctxUtils.WrapCtx(c), cj.JobCode, &biz.CronJobOpts{})
if err != nil {
response.Error(c, err)
return
}
err = ExecJob(ctxUtils.WrapCtx(c), job)
if err != nil {
response.Error(c, err)
return
}
response.Success(c)
}
func (x *cronJobController) RunByID(c *gin.Context) {
in := &request.BaseIDReq{}
if err := x.Bind(c, in); err != nil {
response.Error(c, err)
return
}
cj, err := service.CronJobService.GetByID(ctxUtils.WrapCtx(c), in.ID, nil)
if err != nil {
response.Error(c, err)
return
}
job, err := service.CronJobService.GetByJobCode(ctxUtils.WrapCtx(c), cj.JobCode, &biz.CronJobOpts{})
if err != nil {
response.Error(c, err)
return
}
err = ExecJob(ctxUtils.WrapCtx(c), job)
if err != nil {
response.Error(c, err)
return
}
response.Success(c)
}
func (x *cronJobController) Page(c *gin.Context) { func (x *cronJobController) Page(c *gin.Context) {
in := &types.CronJobPageReq{} in := &types.CronJobPageReq{}
if err := x.Bind(c, in); err != nil { if err := x.Bind(c, in); err != nil {
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论