リトライ機構の導入
リトライ機構を導入することで、リクエストが失敗した場合に自動的にリトライを試みることができます。以下は、Pythonのrequestsライブラリを使用してリトライ機構を導入する方法の例です。
python
import requests from requests.adapters import HTTPAdapter from requests.packages.urllib3.util.retry import Retry def fetch_with_retry(url, max_retries=3): session = requests.Session() retry_strategy = Retry( total=max_retries, backoff_factor=1, status_forcelist=[500, 502, 503, 504], ) adapter = HTTPAdapter(max_retries=retry_strategy) session.mount("http://", adapter) session.mount("https://", adapter) try: response = session.get(url) response.raise_for_status() return response.text except requests.exceptions.RequestException as e: print(f"Request failed: {e}") return None # 使用例 url = "http://example.com" html_content = fetch_with_retry(url) if html_content is not None: print(html_content) else: print("リトライ後もリクエストが失敗しました。")
このコードでは、fetch_with_retry関数を定義し、requests.Session()を使用してセッションを作成します。Retryオブジェクトを作成し、HTTPAdapterを使用してセッションに適用します。HTTPAdapterは、指定されたリトライ条件に基づいてリトライを実行します。fetch_with_retry関数内でリクエストが送信され、リトライの試行が行われます。リトライの試行が失敗した場合、Noneが返されます。
この例では、サーバーエラー(500, 502, 503, 504)が発生した場合にのみリトライを試みますが、必要に応じてstatus_forcelistを変更して他のエラーコードにも対応できます。また、backoff_factorを調整することでリトライの間隔を調整することができます。

ディスカッション
コメント一覧
まだ、コメントがありません