(archetype *baseservice.Archetype, config *QueueCleanerConfig, exec riverdriver.Executor)
| 85 | } |
| 86 | |
| 87 | func NewQueueCleaner(archetype *baseservice.Archetype, config *QueueCleanerConfig, exec riverdriver.Executor) *QueueCleaner { |
| 88 | batchSizes := config.WithDefaults() |
| 89 | |
| 90 | return baseservice.Init(archetype, &QueueCleaner{ |
| 91 | Config: (&QueueCleanerConfig{ |
| 92 | BatchSizes: batchSizes, |
| 93 | Interval: cmp.Or(config.Interval, queueCleanerIntervalDefault), |
| 94 | RetentionPeriod: cmp.Or(config.RetentionPeriod, QueueRetentionPeriodDefault), |
| 95 | Schema: config.Schema, |
| 96 | }).mustValidate(), |
| 97 | exec: exec, |
| 98 | reducedBatchSizeBreaker: riversharedmaintenance.ReducedBatchSizeBreaker(batchSizes), |
| 99 | }) |
| 100 | } |
| 101 | |
| 102 | func (s *QueueCleaner) Start(ctx context.Context) error { |
| 103 | ctx, shouldStart, started, stopped := s.StartInit(ctx) |
searching dependent graphs…