github.com/pf-qiu/concourse/v6@v6.7.3-0.20201207032516-1f455d73275f/atc/gc/artifacts_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 artifactCollector struct { 13 artifactLifecycle db.WorkerArtifactLifecycle 14 } 15 16 func NewArtifactCollector(artifactLifecycle db.WorkerArtifactLifecycle) *artifactCollector { 17 return &artifactCollector{ 18 artifactLifecycle: artifactLifecycle, 19 } 20 } 21 22 func (a *artifactCollector) Run(ctx context.Context) error { 23 logger := lagerctx.FromContext(ctx).Session("artifact-collector") 24 25 logger.Debug("start") 26 defer logger.Debug("done") 27 28 start := time.Now() 29 defer func() { 30 metric.ArtifactCollectorDuration{ 31 Duration: time.Since(start), 32 }.Emit(logger) 33 }() 34 35 return a.artifactLifecycle.RemoveExpiredArtifacts() 36 }