Files

81 lines
2.0 KiB
Go
Raw Permalink Normal View History

2023-12-30 17:40:20 +08:00
package main
import (
2024-01-02 11:50:54 +08:00
"embed"
2023-12-30 17:40:20 +08:00
"fmt"
2024-01-13 11:43:54 +08:00
"message-nest/migrate"
"message-nest/models"
"message-nest/pkg/constant"
2024-01-13 11:43:54 +08:00
"message-nest/pkg/logging"
"message-nest/pkg/setting"
"message-nest/routers"
2024-04-11 17:20:36 +08:00
"message-nest/service/cron_msg_service"
2023-12-31 21:31:56 +08:00
"message-nest/service/cron_service"
"mime"
2023-12-30 17:40:20 +08:00
"net/http"
2024-01-14 15:47:20 +08:00
"os"
2025-09-20 16:59:53 +08:00
"github.com/gin-gonic/gin"
"github.com/sirupsen/logrus"
2023-12-30 17:40:20 +08:00
)
2024-01-02 11:50:54 +08:00
var (
//go:embed all:web/dist
2024-01-02 11:50:54 +08:00
f embed.FS
//go:embed .release*
rf embed.FS
2024-01-02 11:50:54 +08:00
)
2023-12-30 17:40:20 +08:00
func init() {
_ = mime.AddExtensionType(".js", "application/javascript")
_ = mime.AddExtensionType(".mjs", "application/javascript")
_ = mime.AddExtensionType(".css", "text/css")
_ = mime.AddExtensionType(".map", "application/json")
constant.InitReleaseInfo(rf)
2024-01-13 11:43:54 +08:00
setting.Setup()
2024-01-07 21:30:59 +08:00
logging.Setup()
2023-12-30 17:40:20 +08:00
models.Setup()
2025-09-30 21:15:47 +08:00
go func() {
// 完成model的迁移之后,需要加载异步任务
migrate.Setup()
2025-12-09 21:43:47 +08:00
cron_service.StartTasksRunOnStartup()
// 加载用户自己设定的定时消息任务
cron_msg_service.StartUpUserSetupMsgCronTask()
2025-09-30 21:15:47 +08:00
}()
2023-12-30 17:40:20 +08:00
}
2024-01-14 15:14:51 +08:00
func main() {
2024-01-17 23:15:47 +08:00
gin.SetMode(setting.ServerSetting.RunMode)
2024-01-02 11:50:54 +08:00
routersInit := routers.InitRouter(f)
2023-12-30 17:40:20 +08:00
readTimeout := setting.ServerSetting.ReadTimeout
writeTimeout := setting.ServerSetting.WriteTimeout
endPoint := fmt.Sprintf(":%d", setting.ServerSetting.HttpPort)
maxHeaderBytes := 1 << 20
server := &http.Server{
Addr: endPoint,
Handler: routersInit,
ReadTimeout: readTimeout,
WriteTimeout: writeTimeout,
MaxHeaderBytes: maxHeaderBytes,
}
2024-01-26 16:47:28 +08:00
startInfo := ""
if setting.ServerSetting.RunMode == "debug" {
startInfo = fmt.Sprintf("run mode: %s, start message server @ http://localhost%s", setting.ServerSetting.RunMode, endPoint)
} else {
startInfo = fmt.Sprintf("run mode: %s, start message server @ http://0.0.0.0%s", setting.ServerSetting.RunMode, endPoint)
}
2024-01-14 15:47:20 +08:00
logrus.WithFields(logrus.Fields{
"prefix": fmt.Sprintf("[PID:%d]", os.Getpid()),
2026-02-10 21:02:30 +08:00
}).Info(startInfo)
2023-12-30 17:40:20 +08:00
err := server.ListenAndServe()
if err != nil {
2026-02-10 21:02:30 +08:00
logrus.Errorf("Server err: %v", err)
2023-12-30 17:40:20 +08:00
}
}