by Robin at 20240524

This commit is contained in:
Leufolium 2024-05-24 02:52:23 +08:00
parent 3c694f7995
commit 248b93ced7
5 changed files with 28 additions and 61 deletions

View File

@ -57,9 +57,7 @@ func main() {
}
// 初始化日志
fmt.Printf("cfg.oflineserver: %v", cfg.OfflineServer)
fmt.Printf("cfg.oflineserver.log: %v", cfg.OfflineServer.Log)
logger.InitLogger(*cfg.OfflineServer.Log)
logger.InitLogger(*cfg.OfflineServerLog)
// 初始化短信服务
err = sms.Init(cfg.Dysmsapi)
@ -113,10 +111,13 @@ func main() {
validator.InitDefaultNotNullValidator()
controller.InitOffline(router)
srv := &http.Server{
Addr: fmt.Sprintf("%s:%d", GetIp(), cfg.OfflineServer.App.Port),
Addr: fmt.Sprintf("%s:%d", GetIp(), cfg.OfflineServerApp.Port),
Handler: router,
}
httpserver.StartOfflineHttpServer(srv, cfg.OfflineServer)
httpserver.StartHttpServer(srv, &configcenter.DefaultConfig{
Log: *cfg.OfflineServerLog,
App: *cfg.OfflineServerApp,
})
}
func PrintAndExit(msg string) {

View File

@ -4,23 +4,24 @@ import "service/library/configcenter"
type ConfigSt struct {
*configcenter.DefaultConfig `yaml:",inline"` // default
MixMongo *configcenter.MongoConfig `json:"mix_mongo" yaml:"mix_mongo"` // mix mongo
MixMysql *configcenter.MysqlConfig `json:"mix_mysql" yaml:"mix_mysql"` // mix mysql
Crypto *configcenter.CryptoConfig `json:"crypto" yaml:"crypto"` // 账号相关加密
Wxpay *configcenter.WxpayClientConfig `json:"wxpay" yaml:"wxpay"` // 微信支付
WxpayTFZ *configcenter.WxpayClientConfig `json:"wxpay_tfz" yaml:"wxpay_tfz"` // 微信支付
Alipay *configcenter.AlipayClientConfig `json:"alipay" yaml:"alipay"` // 支付宝 心意到了
AlipayMYTS *configcenter.AlipayClientConfig `json:"alipay_myts" yaml:"alipay_myts"` // 支付宝 觅缘天使
Apollo *configcenter.ApolloConfig `json:"apollo" yaml:"apollo"` // Apollo
Media *configcenter.MediaConfig `json:"media" yaml:"media"` // 媒体配置
Dysmsapi *configcenter.DysmsapiConfig `json:"dysmsapi" yaml:"dysmsapi"` // 阿里云短信服务
ImageAudit *configcenter.ImageAuditConfig `json:"imageaudit" yaml:"imageaudit"` // 图片内容审核服务
RedisConfig *configcenter.RedisConfig `json:"redis" yaml:"redis"` // redis
ServerInfo *configcenter.ServerInfoConfig `json:"server_info" yaml:"server_info"` // 服务器信息
TextAudit *configcenter.TextAuditConfig `json:"textaudit" yaml:"textaudit"` // 文字内容审核服务
XxlJob *configcenter.XxlJobConfig `json:"xxl_job" yaml:"xxl_job"` // xxl-job作业系统
DingTalkRobot *configcenter.DingTalkRobotConfig `json:"ding_talk_robot" yaml:"ding_talk_robot"` // 钉钉机器人
VideoModeration *configcenter.VideoModerationConfig `json:"video_moderation" yaml:"video_moderation"` // 视频审核
ElasticSearch *configcenter.ElasticSearchConfig `json:"elastic_search" yaml:"elastic_search"` // es
OfflineServer *configcenter.OfflineServerConfig `json:"offline_server" yaml:"offline_server"` // 离线任务
MixMongo *configcenter.MongoConfig `json:"mix_mongo" yaml:"mix_mongo"` // mix mongo
MixMysql *configcenter.MysqlConfig `json:"mix_mysql" yaml:"mix_mysql"` // mix mysql
Crypto *configcenter.CryptoConfig `json:"crypto" yaml:"crypto"` // 账号相关加密
Wxpay *configcenter.WxpayClientConfig `json:"wxpay" yaml:"wxpay"` // 微信支付
WxpayTFZ *configcenter.WxpayClientConfig `json:"wxpay_tfz" yaml:"wxpay_tfz"` // 微信支付
Alipay *configcenter.AlipayClientConfig `json:"alipay" yaml:"alipay"` // 支付宝 心意到了
AlipayMYTS *configcenter.AlipayClientConfig `json:"alipay_myts" yaml:"alipay_myts"` // 支付宝 觅缘天使
Apollo *configcenter.ApolloConfig `json:"apollo" yaml:"apollo"` // Apollo
Media *configcenter.MediaConfig `json:"media" yaml:"media"` // 媒体配置
Dysmsapi *configcenter.DysmsapiConfig `json:"dysmsapi" yaml:"dysmsapi"` // 阿里云短信服务
ImageAudit *configcenter.ImageAuditConfig `json:"imageaudit" yaml:"imageaudit"` // 图片内容审核服务
RedisConfig *configcenter.RedisConfig `json:"redis" yaml:"redis"` // redis
ServerInfo *configcenter.ServerInfoConfig `json:"server_info" yaml:"server_info"` // 服务器信息
TextAudit *configcenter.TextAuditConfig `json:"textaudit" yaml:"textaudit"` // 文字内容审核服务
XxlJob *configcenter.XxlJobConfig `json:"xxl_job" yaml:"xxl_job"` // xxl-job作业系统
DingTalkRobot *configcenter.DingTalkRobotConfig `json:"ding_talk_robot" yaml:"ding_talk_robot"` // 钉钉机器人
VideoModeration *configcenter.VideoModerationConfig `json:"video_moderation" yaml:"video_moderation"` // 视频审核
ElasticSearch *configcenter.ElasticSearchConfig `json:"elastic_search" yaml:"elastic_search"` // es
OfflineServerLog *configcenter.LoggerConfig `json:"offline_server_log" yaml:"offline_server_log"` // 离线任务log
OfflineServerApp *configcenter.AppConfig `json:"offline_server_app" yaml:"offline_server_app"` // 离线任务app
}

View File

@ -145,15 +145,14 @@ elastic_search:
password: "Wishpal@2024"
sniff: false
offline_server:
log:
offline_server_log:
stdout_enable: true
stdout_level: "trace"
file_enable: true
file_level: "trace"
file_abs_path: "/app/ironfan/log/offline-server/"
app:
offline_server_app:
app_name: "offline-server"
ip: "127.0.0.1"
port: 9998

View File

@ -173,12 +173,6 @@ type ElasticSearchConfig struct {
Sniff bool `json:"sniff" yaml:"sniff"` // sniffer
}
// 离线机器配置
type OfflineServerConfig struct {
Log *LoggerConfig `json:"log" yaml:"log"` // 日志配置
App *AppConfig `json:"app" yaml:"app"` // 服务配置
}
func LoadConfig(configFilePath string, cfg interface{}) error {
cfgStr, err := ioutil.ReadFile(configFilePath)
if err != nil {

View File

@ -40,31 +40,3 @@ func StartHttpServer(srv *http.Server, cfg *configcenter.DefaultConfig) {
logger.Info("Server exited")
}
func StartOfflineHttpServer(srv *http.Server, cfg *configcenter.OfflineServerConfig) {
go func() {
if err := srv.ListenAndServe(); err != nil && err != http.ErrServerClosed {
logger.Fatal("listen: %v", err)
}
}()
logger.Info("Server %s start at %s", cfg.App.AppName, srv.Addr)
quit := make(chan os.Signal)
signal.Notify(quit, syscall.SIGINT, syscall.SIGTERM)
<-quit
logger.Info("Shutdown Server ...")
ctx, cancel := context.WithTimeout(context.Background(), 1*time.Second)
defer cancel()
if err := srv.Shutdown(ctx); err != nil {
logger.Fatal("Server Shutdown:", err)
}
select {
case <-ctx.Done():
logger.Info("timeout of 1 seconds.")
}
logger.Info("Server exited")
}