github.com/pf-qiu/concourse/v6@v6.7.3-0.20201207032516-1f455d73275f/atc/gc/access_tokens_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  )
    10  
    11  type accessTokensCollector struct {
    12  	lifecycle db.AccessTokenLifecycle
    13  	leeway    time.Duration
    14  }
    15  
    16  func NewAccessTokensCollector(lifecycle db.AccessTokenLifecycle, leeway time.Duration) *accessTokensCollector {
    17  	return &accessTokensCollector{
    18  		lifecycle: lifecycle,
    19  		leeway:    leeway,
    20  	}
    21  }
    22  
    23  func (c *accessTokensCollector) Run(ctx context.Context) error {
    24  	logger := lagerctx.FromContext(ctx).Session("access-tokens-collector")
    25  
    26  	logger.Debug("start")
    27  	defer logger.Debug("done")
    28  
    29  	_, err := c.lifecycle.RemoveExpiredAccessTokens(c.leeway)
    30  	if err != nil {
    31  		logger.Error("failed-to-remove-expired-access-tokens", err)
    32  		return err
    33  	}
    34  
    35  	return nil
    36  }