customize parallel transfer count

This commit is contained in:
davidejones
2023-03-03 16:52:31 +00:00
committed by Bjørn Erik Pedersen
parent bdbfacb868
commit e6f029bdee
4 changed files with 8 additions and 1 deletions

View File

@@ -65,6 +65,7 @@ type Deployer struct {
force bool // true forces upload of all files
invalidateCDN bool // true enables invalidate CDN cache (if possible)
maxDeletes int // caps the # of files to delete; -1 to disable
transfers int // The number of file transfers to run in parallel
// For tests...
summary deploySummary // summary of latest Deploy results
@@ -118,6 +119,7 @@ func New(cfg config.Provider, localFs afero.Fs) (*Deployer, error) {
force: cfg.GetBool("force"),
invalidateCDN: cfg.GetBool("invalidateCDN"),
maxDeletes: cfg.GetInt("maxDeletes"),
transfers: cfg.GetInt("transfers"),
}, nil
}
@@ -189,7 +191,7 @@ func (d *Deployer) Deploy(ctx context.Context) error {
// Apply the changes in parallel, using an inverted worker
// pool (https://www.youtube.com/watch?v=5zXAHh5tJqQ&t=26m58s).
// sem prevents more than nParallel concurrent goroutines.
const nParallel = 10
nParallel := d.transfers
var errs []error
var errMu sync.Mutex // protects errs