package scheduler import ( "context" "time" tenantapp "github.com/geo-platform/tenant-api/internal/tenant/app" ) type KnowledgeDeletedCleanupWorker struct { service *tenantapp.KnowledgeService interval time.Duration } func NewKnowledgeDeletedCleanupWorker(service *tenantapp.KnowledgeService) *KnowledgeDeletedCleanupWorker { return &KnowledgeDeletedCleanupWorker{ service: service, interval: 15 * time.Second, } } func (w *KnowledgeDeletedCleanupWorker) Start(ctx context.Context) { go w.Run(ctx) } func (w *KnowledgeDeletedCleanupWorker) Run(ctx context.Context) { if w == nil || w.service == nil { return } w.run(ctx) } func (w *KnowledgeDeletedCleanupWorker) run(ctx context.Context) { w.service.RunDeletedCleanupSweep() ticker := time.NewTicker(w.interval) defer ticker.Stop() for { select { case <-ctx.Done(): return case <-ticker.C: w.service.RunDeletedCleanupSweep() } } }