feat(cron): add scheduled task manager

This commit is contained in:
LinkinStar 2022-12-12 17:03:04 +08:00
parent 4c17547cce
commit 526f00f16d
5 changed files with 36 additions and 2 deletions

View File

@ -6,6 +6,7 @@ import (
"github.com/answerdev/answer/internal/base/conf"
"github.com/answerdev/answer/internal/base/constant"
"github.com/answerdev/answer/internal/base/cron"
"github.com/answerdev/answer/internal/cli"
"github.com/answerdev/answer/internal/schema"
"github.com/gin-gonic/gin"
@ -60,7 +61,8 @@ func runApp() {
}
}
func newApplication(serverConf *conf.Server, server *gin.Engine) *pacman.Application {
func newApplication(serverConf *conf.Server, server *gin.Engine, manager *cron.ScheduledTaskManager) *pacman.Application {
manager.Run()
return pacman.NewApp(
pacman.WithName(Name),
pacman.WithVersion(Version),

View File

@ -7,6 +7,7 @@ package main
import (
"github.com/answerdev/answer/internal/base/conf"
"github.com/answerdev/answer/internal/base/cron"
"github.com/answerdev/answer/internal/base/data"
"github.com/answerdev/answer/internal/base/middleware"
"github.com/answerdev/answer/internal/base/server"
@ -40,6 +41,7 @@ func initApplication(
controller_backyard.ProviderSetController,
templaterender.ProviderSetTemplateRenderController,
service.ProviderSetService,
cron.ProviderSetService,
repo.ProviderSetRepo,
translator.ProviderSet,
middleware.ProviderSetMiddleware,

View File

@ -8,6 +8,7 @@ package main
import (
"github.com/answerdev/answer/internal/base/conf"
"github.com/answerdev/answer/internal/base/cron"
"github.com/answerdev/answer/internal/base/data"
"github.com/answerdev/answer/internal/base/middleware"
"github.com/answerdev/answer/internal/base/server"
@ -210,7 +211,8 @@ func initApplication(debug bool, serverConf *conf.Server, dbConf *data.Database,
templateController := controller.NewTemplateController(templateRenderController, siteInfoCommonService)
templateRouter := router.NewTemplateRouter(templateController, templateRenderController, siteInfoController)
ginEngine := server.NewHTTPServer(debug, staticRouter, answerAPIRouter, swaggerRouter, uiRouter, authUserMiddleware, avatarMiddleware, templateRouter)
application := newApplication(serverConf, ginEngine)
scheduledTaskManager := cron.NewScheduledTaskManager(siteInfoCommonService)
application := newApplication(serverConf, ginEngine, scheduledTaskManager)
return application, func() {
cleanup2()
cleanup()

View File

@ -0,0 +1,18 @@
package cron
import "github.com/answerdev/answer/internal/service/siteinfo_common"
// ScheduledTaskManager scheduled task manager
type ScheduledTaskManager struct {
siteInfoService *siteinfo_common.SiteInfoCommonService
}
// NewScheduledTaskManager new scheduled task manager
func NewScheduledTaskManager(siteInfoService *siteinfo_common.SiteInfoCommonService) *ScheduledTaskManager {
manager := &ScheduledTaskManager{siteInfoService: siteInfoService}
return manager
}
func (s *ScheduledTaskManager) Run() {
}

View File

@ -0,0 +1,10 @@
package cron
import (
"github.com/google/wire"
)
// ProviderSetService is providers.
var ProviderSetService = wire.NewSet(
NewScheduledTaskManager,
)