2

LWP::UserAgent を使用して、複数のサーバー上の Web サービスと通信しています。サーバーは一度に 1 つずつ接続されます。各応答が完了するまでに最大 30 分かかる場合があるため、LWP タイムアウトを 30 分に設定しました。

残念ながら、サーバーにまったく到達できない場合 (たとえば、Web サーバーがダウンしている場合) にも、同じタイムアウトが適用されます。したがって、私のアプリケーションは、実行されていないサーバーを 30 分間待機します。

2 つの別々のタイムアウトを設定することは可能ですか?

  1. 接続が確立されるのを待つ短いもの。
  2. 接続が確立されると、応答を待機するより長いもの。
4

1 に答える 1

0

サーバーに到達できない場合、同じタイムアウトは「適用されません」。タイムアウト オプションは非常に特殊な方法で機能します。

サーバーへの接続で timeout 秒間アクティビティが観察されない場合、リクエストは中止されます。これは、完全なトランザクションと request() メソッドが実際に戻るまでにかかる時間が長くなる可能性があることを意味します。

データが渡されている限り、タイムアウトはトリガーされません。コールバック関数 (ドキュメントのREQUEST METHODSセクションを参照) を使用して、データ転送が行われている時間を確認し、必要に応じて完全に終了することができます。

于 2012-03-15T08:41:25.437 に答える