Skip to content

Commit 1dd5f0a

Browse files
authored
Merge pull request #14 from infosiftr/more-limits
Adjust rate limit to 100/min
2 parents 45835e4 + e9a0732 commit 1dd5f0a

File tree

1 file changed

+10
-5
lines changed

1 file changed

+10
-5
lines changed

builds.go

+10-5
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ var (
6868
cacheResolve = sync.Map{}
6969
cacheFile string
7070

71-
registryRateLimiter = rate.NewLimiter(500/rate.Limit((1*time.Minute).Seconds()), 100) // stick to at most 500/min in registry/Hub requests (and allow an immediate burst of 100)
71+
registryRateLimiter = rate.NewLimiter(100/rate.Limit((1*time.Minute).Seconds()), 100) // stick to at most 100/min in registry/Hub requests (and allow an immediate burst of 100)
7272
)
7373

7474
type cacheResolveType struct {
@@ -81,6 +81,7 @@ func resolveRemoteArch(ctx context.Context, img string, arch string, diskCacheFo
8181
var (
8282
ret = cacheResolveType{}
8383
err error
84+
individualLookupLimiter = rate.NewLimiter(rate.Every(time.Second), 2) // only do each image lookup at most once per second
8485
)
8586

8687
shouldRetry := func(err error) bool {
@@ -106,8 +107,10 @@ func resolveRemoteArch(ctx context.Context, img string, arch string, diskCacheFo
106107
}
107108

108109
for {
109-
err = registryRateLimiter.Wait(ctx)
110-
if err != nil {
110+
if err := individualLookupLimiter.Wait(ctx); err != nil {
111+
return nil, err
112+
}
113+
if err := registryRateLimiter.Wait(ctx); err != nil {
111114
return nil, err
112115
}
113116

@@ -125,8 +128,10 @@ func resolveRemoteArch(ctx context.Context, img string, arch string, diskCacheFo
125128
}
126129

127130
for {
128-
err = registryRateLimiter.Wait(ctx)
129-
if err != nil {
131+
if err := individualLookupLimiter.Wait(ctx); err != nil {
132+
return nil, err
133+
}
134+
if err := registryRateLimiter.Wait(ctx); err != nil {
130135
return nil, err
131136
}
132137

0 commit comments

Comments
 (0)