doc: 阅读project reactor文档

This commit is contained in:
asahi
2025-04-13 22:32:39 +08:00
parent 3928ac7dc6
commit 3ae2a0dc15

View File

@@ -61,6 +61,7 @@
- [retry](#retry) - [retry](#retry)
- [retry原理](#retry原理) - [retry原理](#retry原理)
- [retryWhen](#retrywhen) - [retryWhen](#retrywhen)
- [retry helper](#retry-helper)
# Reactor # Reactor
## Reactive Programming ## Reactive Programming
@@ -959,7 +960,11 @@ Retry周期如下所示
- 如果`companion flux`complete将会对error执行swallow操作retry cycle将会停止并且也会导致sequence complete - 如果`companion flux`complete将会对error执行swallow操作retry cycle将会停止并且也会导致sequence complete
- 如果`companion flux`产生了一个error,retry cycle将会终止并且导致sequence按异常终止 - 如果`companion flux`产生了一个error,retry cycle将会终止并且导致sequence按异常终止
#### retry helper
project reactor提供了`Retry` helper`RetrySpec``RetryBackoffSpec`,二者都允许进行如下所示的自定义行为:
- `filter`通过filter设置`允许触发retry的异常`
- `modifyErrorFilter` 对之前`filter`设置的异常进行修改
- `doBeforeRetry``doAfterRetry`针对retrytrigger执行side effect
- > `doBeforeRetry()`方法触发在delay发生之前`doAfterRetry()`触发在delay之后
- `onRetryExhaustedThrow(BiFunction)`:在重试数量达到上限后,通过`onRetryExhaustedThrow(BiFunction)`来自定义异常。
- 通常情况下,当重试数量达到上限后,自定义异常类型通过`Exceptions.retryExhausted(…​)`方法来构建,其返回的异常类型为`RetryExhaustedException`,可以通过`Exceptions.isRetryExhausted(Throwable)`方法来进行区分