answer/internal/base/cron/cron.go

45 lines
1.1 KiB
Go
Raw Normal View History

2022-12-12 17:03:04 +08:00
package cron
2022-12-12 18:21:03 +08:00
import (
"context"
2022-12-13 10:40:07 +08:00
"fmt"
2022-12-12 18:21:03 +08:00
"github.com/answerdev/answer/internal/service"
"github.com/answerdev/answer/internal/service/siteinfo_common"
2022-12-13 10:40:07 +08:00
"github.com/robfig/cron/v3"
"github.com/segmentfault/pacman/log"
2022-12-12 18:21:03 +08:00
)
2022-12-12 17:03:04 +08:00
// ScheduledTaskManager scheduled task manager
type ScheduledTaskManager struct {
siteInfoService *siteinfo_common.SiteInfoCommonService
2022-12-12 18:21:03 +08:00
questionService *service.QuestionService
2022-12-12 17:03:04 +08:00
}
// NewScheduledTaskManager new scheduled task manager
2022-12-12 18:21:03 +08:00
func NewScheduledTaskManager(
siteInfoService *siteinfo_common.SiteInfoCommonService,
questionService *service.QuestionService,
) *ScheduledTaskManager {
manager := &ScheduledTaskManager{
siteInfoService: siteInfoService,
questionService: questionService,
}
2022-12-12 17:03:04 +08:00
return manager
}
func (s *ScheduledTaskManager) Run() {
2022-12-13 10:40:07 +08:00
fmt.Println("start cron")
2022-12-13 14:15:44 +08:00
s.questionService.SitemapCron(context.Background())
2022-12-13 10:40:07 +08:00
c := cron.New()
_, err := c.AddFunc("0 */1 * * *", func() {
2022-12-13 10:40:07 +08:00
ctx := context.Background()
fmt.Println("sitemap cron execution")
s.questionService.SitemapCron(ctx)
})
if err != nil {
log.Error(err)
}
2022-12-13 10:40:07 +08:00
c.Start()
2022-12-12 17:03:04 +08:00
}