/ / Spray / Scala - 特定のリクエストに対するタイムアウトの設定 - スカラ、タイムアウト、パイプライン、スプレー

スプレー/スカラ - 特定のリクエストに対するタイムアウトの設定 - スカラー、タイムアウト、パイプライン、スプレー

現在、スプレーを使用してREST呼び出しを設定していますパイプライン。私が数秒以内に応答を得ることができない場合は、タイムアウトしたいが、その特定の呼び出しに対してのみスプレークライアントのパイプラインリクエストを行うときに、その特定のコールに固有のタイムアウトを指定する良い方法があるか?

回答:

回答№1は1

私が知る限り、スプレークライアント1.3.1では、パイプを作成した後にカスタマイズする方法はありません。 ただし、さまざまな種類の要求に対してカスタムパイプを作成できます。

以下に定義されたタイムアウトはask()呼び出しのタイムアウトであり、ネットワーク操作ではないことに言及する価値はありますが、これはあなたの説明から必要なものだと思います。

私は次の記事が、ライブラリーが裏でどのように働くかを少し良く理解するのに非常に役立つことを発見しました。 http://kamon.io/teamblog/2014/11/02/understanding-spray-client-timeout-settings/

免責事項私は実際にこれを試しましたが、うまくいくはずです。

val timeout1 = Timeout(5 minutes)
val timeout2 = Timeout(1 minutes)

val pipeline1: HttpRequest => Future[HttpResponse] = sendReceive(implicitly[ActorRefFactory],
implicitly[ExecutionContext], timeout1)

val pipeline2: HttpRequest => Future[HttpResponse] = sendReceive(implicitly[ActorRefFactory],
implicitly[ExecutionContext], timeout2)

あなたは明らかに各要求に適切なパイプを使用します