You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
149 lines
2.2 KiB
Go
149 lines
2.2 KiB
Go
package boot
|
|
|
|
import (
|
|
"joybuywork/internal/app"
|
|
"joybuywork/internal/config"
|
|
"joybuywork/internal/consts"
|
|
"joybuywork/internal/repository/dao"
|
|
"joybuywork/internal/server"
|
|
"joybuywork/internal/service/crons"
|
|
"joybuywork/internal/service/queue/consumer"
|
|
"joybuywork/internal/service/queue/consumer/campaignnotice"
|
|
"joybuywork/internal/service/queue/consumer/statcampaign"
|
|
"joybuywork/internal/service/queue/delay"
|
|
"joybuywork/internal/service/queue/producer"
|
|
"joybuywork/internal/utils"
|
|
"flag"
|
|
"fmt"
|
|
"time"
|
|
)
|
|
|
|
// Init 初始化活动配置和全局变量
|
|
func Init() (err error) {
|
|
|
|
// 启动环境获取
|
|
env := flag.String("env", "local", "environment, can be 'dev', 'test' or 'prod'")
|
|
flag.Parse()
|
|
|
|
var filePath = config.FilePath{
|
|
ConfigName: fmt.Sprintf("config-%s", *env),
|
|
ConfigType: "yaml",
|
|
ConfigPath: "./etc",
|
|
}
|
|
|
|
err = config.LoadConfig(filePath)
|
|
if err != nil {
|
|
return
|
|
}
|
|
|
|
//报警推送,一定要先初始化推送再开启日志
|
|
err = app.InitFeiShu()
|
|
if err != nil {
|
|
return
|
|
}
|
|
|
|
//日志
|
|
app.InitLogger()
|
|
|
|
//mysql
|
|
err = app.InitDB()
|
|
if err != nil {
|
|
return
|
|
}
|
|
|
|
// 设置dao的数据库
|
|
dao.SetDefault(app.DB.Client)
|
|
|
|
//redis
|
|
err = app.InitRedis()
|
|
if err != nil {
|
|
return
|
|
}
|
|
|
|
err = app.InitNode()
|
|
if err != nil {
|
|
return
|
|
}
|
|
|
|
app.InitSubLock()
|
|
|
|
// 采集
|
|
app.SetUpCollector()
|
|
|
|
err = app.InitEtcdCli()
|
|
if err != nil {
|
|
return
|
|
}
|
|
|
|
//kafka
|
|
err = app.InitKafka()
|
|
if err != nil {
|
|
return
|
|
}
|
|
|
|
//定时任务
|
|
crons.SetUp()
|
|
|
|
//队列生产者
|
|
producer.SetUp()
|
|
|
|
//队列消费者
|
|
err = queue()
|
|
if err != nil {
|
|
return
|
|
}
|
|
|
|
// 固定的奖品数据
|
|
err = app.LangDataInit()
|
|
if err != nil {
|
|
return
|
|
}
|
|
|
|
err = app.AdsInit("")
|
|
if err != nil {
|
|
return
|
|
}
|
|
|
|
app.InitCollect()
|
|
|
|
return
|
|
}
|
|
|
|
// Run 服务启动
|
|
func Run() {
|
|
_ = server.Run()
|
|
|
|
// 初始化micro的一些服务
|
|
|
|
app.InitMicro()
|
|
|
|
app.FeishuNormalSend("[%s]「%s」[%s] 服务启动", utils.GetIp(), config.Config.Server.Env, consts.ServiceName)
|
|
}
|
|
|
|
func Shutdown() {
|
|
consumer.Stop()
|
|
|
|
delay.Stop()
|
|
|
|
time.Sleep(5 * time.Second)
|
|
}
|
|
|
|
func queue() (err error) {
|
|
err = campaignnotice.Run()
|
|
if err != nil {
|
|
return
|
|
}
|
|
|
|
err = statcampaign.Run()
|
|
if err != nil {
|
|
return
|
|
}
|
|
|
|
err = delay.Setup()
|
|
if err != nil {
|
|
return
|
|
}
|
|
|
|
return
|
|
}
|