github.com/pf-qiu/concourse/v6@v6.7.3-0.20201207032516-1f455d73275f/atc/gc/resource_config_collector.go (about) 1 package gc 2 3 import ( 4 "context" 5 "time" 6 7 "code.cloudfoundry.org/lager/lagerctx" 8 "github.com/pf-qiu/concourse/v6/atc/db" 9 "github.com/pf-qiu/concourse/v6/atc/metric" 10 ) 11 12 type resourceConfigCollector struct { 13 configFactory db.ResourceConfigFactory 14 gracePeriod time.Duration 15 } 16 17 func NewResourceConfigCollector( 18 configFactory db.ResourceConfigFactory, 19 gracePeriod time.Duration, 20 ) *resourceConfigCollector { 21 return &resourceConfigCollector{ 22 configFactory: configFactory, 23 gracePeriod: gracePeriod, 24 } 25 } 26 27 func (rcuc *resourceConfigCollector) Run(ctx context.Context) error { 28 logger := lagerctx.FromContext(ctx).Session("resource-config-collector") 29 30 logger.Debug("start") 31 defer logger.Debug("done") 32 33 start := time.Now() 34 defer func() { 35 metric.ResourceConfigCollectorDuration{ 36 Duration: time.Since(start), 37 }.Emit(logger) 38 }() 39 40 return rcuc.configFactory.CleanUnreferencedConfigs(rcuc.gracePeriod) 41 }