fix: enable task archivers (#21943)

Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
This commit is contained in:
Jian Qiu
2025-01-08 23:20:28 +08:00
committed by GitHub
parent a82939fc07
commit fb849aec25
17 changed files with 118 additions and 23 deletions

View File

@@ -23,6 +23,8 @@ import (
"yunion.io/x/onecloud/pkg/cloudcommon/cronman"
"yunion.io/x/onecloud/pkg/cloudcommon/db"
"yunion.io/x/onecloud/pkg/cloudcommon/db/taskman"
"yunion.io/x/onecloud/pkg/devtool/options"
"yunion.io/x/onecloud/pkg/mcclient"
"yunion.io/x/onecloud/pkg/mcclient/auth"
"yunion.io/x/onecloud/pkg/mcclient/modules/ansible"
@@ -111,7 +113,15 @@ func AddOneCronjob(item *SCronjob, s *mcclient.ClientSession) error {
}
func InitializeCronjobs(ctx context.Context) error {
err := taskman.TaskManager.InitializeData()
if err != nil {
log.Fatalf("TaskManager.InitializeData fail %s", err)
}
DevToolCronManager = cronman.InitCronJobManager(true, 8)
DevToolCronManager.AddJobAtIntervals("TaskCleanupJob", time.Duration(options.Options.TaskArchiveIntervalHours)*time.Hour, taskman.TaskManager.TaskCleanupJob)
DevToolCronManager.Start()
Session := auth.GetAdminSession(ctx, "")

View File

@@ -24,12 +24,16 @@ import (
func InitHandlers(app *appsrv.Application) {
db.InitAllManagers()
taskman.InitArchivedTaskManager()
taskman.AddTaskHandler("", app)
for _, manager := range []db.IModelManager{
taskman.TaskManager,
taskman.SubTaskManager,
taskman.TaskObjectManager,
taskman.ArchivedTaskManager,
db.SharedResourceManager,
db.UserCacheManager,
db.TenantCacheManager,

View File

@@ -50,7 +50,9 @@ func StartService() {
db.EnsureAppSyncDB(app, dbOpts, models.InitDB)
defer cloudcommon.CloseDB()
models.InitializeCronjobs(app.GetContext())
if !opts.IsSlaveNode {
models.InitializeCronjobs(app.GetContext())
}
app_common.ServeForeverWithCleanup(app, baseOpts, func() {
cloudcommon.CloseDB()