diff options
| author | Konstantin Lebedev <9497591+kmlebedev@users.noreply.github.com> | 2022-07-15 16:05:35 +0500 |
|---|---|---|
| committer | Konstantin Lebedev <9497591+kmlebedev@users.noreply.github.com> | 2022-07-15 16:05:35 +0500 |
| commit | 7b1497ee63ce4126236d08ab54d9d6e22e43556d (patch) | |
| tree | a975c601ea636029ff0b3b0beb3c6989489148d8 | |
| parent | 01996bccf8ca8cc285e95b55633a501516668a6f (diff) | |
| download | seaweedfs-7b1497ee63ce4126236d08ab54d9d6e22e43556d.tar.xz seaweedfs-7b1497ee63ce4126236d08ab54d9d6e22e43556d.zip | |
Use BackoffSchedule for getLookupFileId
| -rw-r--r-- | weed/filer/stream.go | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/weed/filer/stream.go b/weed/filer/stream.go index 71808017e..d1b66e88d 100644 --- a/weed/filer/stream.go +++ b/weed/filer/stream.go @@ -18,6 +18,12 @@ import ( "github.com/chrislusf/seaweedfs/weed/wdclient" ) +var getLookupFileIdBackoffSchedule = []time.Duration{ + 150 * time.Millisecond, + 600 * time.Millisecond, + 1800 * time.Millisecond, +} + func HasData(entry *filer_pb.Entry) bool { if len(entry.Content) > 0 { @@ -69,7 +75,15 @@ func StreamContent(masterClient wdclient.HasLookupFileIdFunction, writer io.Writ fileId2Url := make(map[string][]string) for _, chunkView := range chunkViews { - urlStrings, err := masterClient.GetLookupFileIdFunction()(chunkView.FileId) + var urlStrings []string + var err error + for _, backoff := range getLookupFileIdBackoffSchedule { + urlStrings, err = masterClient.GetLookupFileIdFunction()(chunkView.FileId) + if err == nil && len(urlStrings) > 0 { + time.Sleep(backoff) + break + } + } if err != nil { glog.V(1).Infof("operation LookupFileId %s failed, err: %v", chunkView.FileId, err) return err |
