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  }