diff options
| author | Konstantin Lebedev <lebedev_k@tochka.com> | 2021-02-03 21:32:30 +0500 |
|---|---|---|
| committer | Konstantin Lebedev <lebedev_k@tochka.com> | 2021-02-03 21:32:30 +0500 |
| commit | 24ec17219be00f8c00e1f56412b5dd929028d8b5 (patch) | |
| tree | 9c41be9f7bba29d37a12949e1e19c37febaead17 /weed/replication/repl_util | |
| parent | a331bbb3ae7b75025850f67a5758812fddfe0ecd (diff) | |
| download | seaweedfs-24ec17219be00f8c00e1f56412b5dd929028d8b5.tar.xz seaweedfs-24ec17219be00f8c00e1f56412b5dd929028d8b5.zip | |
RabbitMQ delay retry with Dead Letter Exchange
https://github.com/chrislusf/seaweedfs/issues/1773
https://github.com/google/go-cloud/issues/2952
Diffstat (limited to 'weed/replication/repl_util')
| -rw-r--r-- | weed/replication/repl_util/replication_utli.go | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/weed/replication/repl_util/replication_utli.go b/weed/replication/repl_util/replication_utli.go index 42777f4ad..c5b8ab4e1 100644 --- a/weed/replication/repl_util/replication_utli.go +++ b/weed/replication/repl_util/replication_utli.go @@ -17,9 +17,10 @@ func CopyFromChunkViews(chunkViews []*filer.ChunkView, filerSource *source.Filer } var writeErr error + var shouldRetry bool for _, fileUrl := range fileUrls { - _, err = util.ReadUrlAsStream(fileUrl+"?readDeleted=true", nil, false, chunk.IsFullChunk(), chunk.Offset, int(chunk.Size), func(data []byte) { + shouldRetry, err = util.ReadUrlAsStream(fileUrl+"?readDeleted=true", nil, false, chunk.IsFullChunk(), chunk.Offset, int(chunk.Size), func(data []byte) { writeErr = writeFunc(data) }) if err != nil { @@ -30,11 +31,12 @@ func CopyFromChunkViews(chunkViews []*filer.ChunkView, filerSource *source.Filer break } } - - if err != nil { + if shouldRetry && err != nil { return err } - + if writeErr != nil { + return writeErr + } } return nil } |
