in src/hbase/client/async-batch-rpc-retrying-caller.cc [211:230]
void AsyncBatchRpcRetryingCaller<REQ, RESP>::TryResubmit(
const std::vector<std::shared_ptr<Action>> &actions, int32_t tries) {
int64_t delay_ns;
if (operation_timeout_ns_.count() > 0) {
int64_t max_delay_ns = RemainingTimeNs() - ConnectionUtils::kSleepDeltaNs;
if (max_delay_ns <= 0) {
FailAll(actions, tries);
return;
}
delay_ns = std::min(max_delay_ns, ConnectionUtils::GetPauseTime(pause_ns_.count(), tries - 1));
} else {
delay_ns = ConnectionUtils::GetPauseTime(pause_ns_.count(), tries - 1);
}
conn_->retry_executor()->add([=]() {
retry_timer_->scheduleTimeoutFn(
[=]() { conn_->cpu_executor()->add([=]() { GroupAndSend(actions, tries + 1); }); },
milliseconds(TimeUtil::ToMillis(delay_ns)));
});
}