staticupload: don't request empty invalidation (#1870)

If no files have been touched, do not initiate an invalidation.
This commit is contained in:
Otto Bittner 2023-06-05 15:47:33 +02:00 committed by GitHub
parent 06cd750345
commit fa01569cc6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 13 additions and 0 deletions

View File

@ -125,6 +125,10 @@ func (c *Client) Flush(ctx context.Context) error {
c.mux.Lock() c.mux.Lock()
defer c.mux.Unlock() defer c.mux.Unlock()
if len(c.dirtyKeys) == 0 {
return nil
}
// invalidate all dirty keys that have not been invalidated yet // invalidate all dirty keys that have not been invalidated yet
invalidationID, err := c.invalidateCacheForKeys(ctx, c.dirtyKeys) invalidationID, err := c.invalidateCacheForKeys(ctx, c.dirtyKeys)
if err != nil { if err != nil {
@ -146,6 +150,11 @@ func (c *Client) invalidate(ctx context.Context, keys []string) error {
c.dirtyKeys = append(c.dirtyKeys, keys...) c.dirtyKeys = append(c.dirtyKeys, keys...)
return nil return nil
} }
if len(keys) == 0 {
return nil
}
// eagerly invalidate the CDN cache // eagerly invalidate the CDN cache
invalidationID, err := c.invalidateCacheForKeys(ctx, keys) invalidationID, err := c.invalidateCacheForKeys(ctx, keys)
if err != nil { if err != nil {

View File

@ -357,6 +357,7 @@ func TestFlush(t *testing.T) {
wantCacheInvalidationErr: true, wantCacheInvalidationErr: true,
}, },
"waiting for invalidation times out": { "waiting for invalidation times out": {
dirtyKeys: []string{"test-key-1"},
invalidationIDs: []string{ invalidationIDs: []string{
"test-invalidation-id-2", "test-invalidation-id-2",
"test-invalidation-id-3", "test-invalidation-id-3",
@ -364,6 +365,9 @@ func TestFlush(t *testing.T) {
cacheInvalidationWaitTimeout: time.Microsecond, cacheInvalidationWaitTimeout: time.Microsecond,
wantCacheInvalidationErr: true, wantCacheInvalidationErr: true,
}, },
"no invalidations": {
dirtyKeys: []string{},
},
} }
for name, tc := range testCases { for name, tc := range testCases {