4

私は次の機能を持っているとしましょう:

@retry(stop=stop_after_attempt(3))
def foo():
  try:
    response = requests.post(...)
    response.raise_for_status()
    return response
  except Exception as e:
    raise e

この関数は 3 回再試行します。3 回の再試行がすべて失敗すると、例外が発生します。

粘り強さを使用して、例外を発生させずに 3 回再試行するにはどうすればよいですか? 何かのようなもの:

@retry(stop=stop_after_attempt(3))
def foo(ignore_errors=False):
  try:
    response = requests.post(...)
    response.raise_for_status()
    return response
  except Exception as e:
    if ignore_errors and function has been retried three times:
      pass
    raise e
4

2 に答える 2

-1

純粋な python を使用する:

def foo(tries=0,maxTries=3):
    try:
        response = requests.post(...)
        response.raise_for_status()
        return response
    except Exception as e:
        if tries>=maxTries:
            print("Maxtries reached.")
            return
        else:
            foo(tries+1,maxTries)

ここで再帰関数が役立つかどうかはわかりません。

于 2020-10-09T05:16:55.973 に答える