github.com/pf-qiu/concourse/v6@v6.7.3-0.20201207032516-1f455d73275f/atc/db/worker_artifact_lifecycle.go (about)

     1  package db
     2  
     3  import (
     4  	sq "github.com/Masterminds/squirrel"
     5  )
     6  
     7  //go:generate counterfeiter . WorkerArtifactLifecycle
     8  
     9  type WorkerArtifactLifecycle interface {
    10  	RemoveExpiredArtifacts() error
    11  }
    12  
    13  type artifactLifecycle struct {
    14  	conn Conn
    15  }
    16  
    17  func NewArtifactLifecycle(conn Conn) *artifactLifecycle {
    18  	return &artifactLifecycle{
    19  		conn: conn,
    20  	}
    21  }
    22  
    23  func (lifecycle *artifactLifecycle) RemoveExpiredArtifacts() error {
    24  
    25  	_, err := psql.Delete("worker_artifacts").
    26  		Where(sq.Expr("created_at < NOW() - interval '12 hours'")).
    27  		RunWith(lifecycle.conn).
    28  		Exec()
    29  
    30  	return err
    31  }