ユニバーサルスクレイピングAPIヘルプタイムアウトポリシー

タイムアウトポリシー

ユニバーサルスクレイピングAPIは、制御可能なリクエスト実行、システムの安定性、効率的なリソース管理を確保するために設計された、2段階のタイムアウトポリシーを採用しています。2つの独立したタイムアウト戦略を設計することにより、APIは複雑なネットワーク環境や動的なページ解析シナリオにおいて堅牢なパフォーマンスを提供し、リソース枯渇や長時間待機によるシステム障害を効果的に回避できます。

1. グローバル実行タイムアウト

定義: グローバル実行タイムアウトとは、APIリクエスト内のすべての命令の累積実行時間を制限するポリシーです。

タイムアウト閾値: 180秒

範囲:

  • instructions命令セット内のすべてのwaitXxxシリーズの操作(waitForSelectorwaitForEventなど)。
  • この閾値は、命令実行中の潜在的な待機時間をカバーし、長時間実行されるタスクがシステムリソースを無期限に占有しないようにします。

タイムアウト動作:

  • 累積実行時間が180秒に達すると、システムはAPIリクエストプロセス全体を強制的に終了し、タイムアウトエラー応答を返します。
  • このポリシーはAPIのランタイム制限を確保し、複雑な命令や誤った設定によるリソースの乱用を防ぎます。

2. ページロードタイムアウト

定義: ページロードタイムアウトは、ブラウザの初期化とページリソースのロードフェーズのタイムリミットに焦点を当てています。

タイムアウト閾値: 30秒(固定値)

範囲:

  • ブラウザインスタンス(Puppeteerやその他のブラウザドライバなど)の初期化プロセス。
  • HTML、CSS、JavaScript、その他のネットワークリソースを含むページリソースのロード。

タイムアウト動作:

  • URLアクセスが失敗した場合、またはページリソースのロード時間が30秒を超えた場合、システムはグローバルタイムアウトを待たずにすぐにエラー応答を返します。
  • このポリシーは、アクセスできないターゲットページを迅速に特定し、無効なリソースを長時間待機することを回避することを目的としています。

3. タイムアウト優先順位ルール

  • ページロードタイムアウトは優先度が高く、グローバルタイムアウトの前にリクエスト実行を中断できます。
  • ページロードフェーズ中にタイムアウトが発生した場合、システムは後続の命令実行フェーズに入る前にリクエストプロセスをすぐに終了します。