...
Tried two implementations (will update the benchmark result later for proper choice):
- based on timer trigger (Poc1: https://github.com/lincoln-lil/flink/pull/new/async-retry-timer)
- based on DelayQueue with a pull fashion (Poc2: https://github.com/lincoln-lil/flink/pull/new/async-op-retry)
we prefer the timer-based solution, which obtains precise delay control through simple logic and only needs to pay (what we consider to be acceptable) timer instance cost for the retry element.
Comparation of the two implementations:
Solution | Pros | Cons |
based on timer | 1. simple | 1. rely on timer service and more timer instances |
based on DelayQueue | 1. no timer instance | 1. rely on java DelayQueue and Slightly more complex |
1. based on timer trigger
...