mirror of
https://github.com/thegeeklab/drone-s3-sync.git
synced 2024-11-22 11:10:39 +00:00
Merge pull request #42 from stephensxu/feature/allow_dynamic_concurrency
add flag to allow user set dynamic concurrency instead of using hardcoded number
This commit is contained in:
commit
d22af6277e
8
main.go
8
main.go
@ -116,6 +116,13 @@ func main() {
|
||||
Name: "env-file",
|
||||
Usage: "source env file",
|
||||
},
|
||||
cli.IntFlag{
|
||||
Name: "max-concurrency",
|
||||
Usage: "customize number concurrent files to process",
|
||||
Value: 100,
|
||||
EnvVar: "PLUGIN_MAX_CONCURRENCY",
|
||||
|
||||
},
|
||||
}
|
||||
|
||||
if err := app.Run(os.Args); err != nil {
|
||||
@ -145,6 +152,7 @@ func run(c *cli.Context) error {
|
||||
Redirects: c.Generic("redirects").(*MapFlag).Get(),
|
||||
CloudFrontDistribution: c.String("cloudfront-distribution"),
|
||||
DryRun: c.Bool("dry-run"),
|
||||
MaxConcurrency: c.Int("max-concurrency"),
|
||||
}
|
||||
|
||||
return plugin.Exec()
|
||||
|
@ -28,10 +28,9 @@ type Plugin struct {
|
||||
PathStyle bool
|
||||
client AWS
|
||||
jobs []job
|
||||
MaxConcurrency int
|
||||
}
|
||||
|
||||
const maxConcurrent = 100
|
||||
|
||||
type job struct {
|
||||
local string
|
||||
remote string
|
||||
@ -156,7 +155,7 @@ func (p *Plugin) createInvalidateJob() {
|
||||
|
||||
func (p *Plugin) runJobs() {
|
||||
client := p.client
|
||||
jobChan := make(chan struct{}, maxConcurrent)
|
||||
jobChan := make(chan struct{}, p.MaxConcurrency)
|
||||
results := make(chan *result, len(p.jobs))
|
||||
var invalidateJob *job
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user