例外発火したい

Net::HTTPResponse#value を呼び出す。 https://docs.ruby-lang.org/ja/latest/method/Net=3a=3aHTTPResponse/i/value.html

Retryable.retryable(on: [Net::HTTPFatalError], tries: 2) do |_, error|
  res = http.request(req)

  # 500の場合のみ例外発火し、リトライする
  res.is_a?(Net::HTTPInternalServerError) && res.value
end

value()は処理としては200ステータスじゃなかったら error!() を呼び出す。パブリックメソッドなので上記の用途であれば error! の方が視認性は高いかもしれない。

お気持ち

これを見つけ出すまでにめちゃめちゃ時間がかかった、、、 Rubyリファレンスガイドさんたのむ、、

results matching ""

    No results matching ""