Skip to content

Commit 5830008

Browse files
committed
limit max connections in the SttpClient
1 parent 0b2b5cd commit 5830008

File tree

2 files changed

+12
-4
lines changed

2 files changed

+12
-4
lines changed

rest/.jvm/src/test/scala/io/udash/rest/SttpRestCallTest.scala

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,22 @@ package rest
33

44
import io.udash.rest.raw.HttpErrorException
55
import io.udash.rest.raw.RawRest.HandleRequest
6-
import sttp.client3.SttpBackend
6+
import sttp.client3.{HttpClientFutureBackend, SttpBackend}
77

8-
import scala.concurrent.duration._
8+
import java.net.http.HttpClient
9+
import java.time.Duration as JDuration
10+
import scala.concurrent.duration.*
911
import scala.concurrent.{Await, Future}
1012

1113
trait SttpClientRestTest extends ServletBasedRestApiTest {
12-
implicit val backend: SttpBackend[Future, Any] = SttpRestClient.defaultBackend()
14+
implicit val backend: SttpBackend[Future, Any] = HttpClientFutureBackend.usingClient {
15+
HttpClient
16+
.newBuilder()
17+
.executor((_: Runnable).run()) // == MaxConnections = 1
18+
.followRedirects(HttpClient.Redirect.NEVER)
19+
.connectTimeout(JDuration.ofMillis(30.seconds.toMillis))
20+
.build()
21+
}
1322

1423
def clientHandle: HandleRequest =
1524
SttpRestClient.asHandleRequest[Future](s"$baseUrl/api")

rest/src/test/scala/io/udash/rest/RestApiTest.scala

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ import org.scalatest.funsuite.AnyFunSuite
1515
import scala.concurrent.duration.FiniteDuration
1616

1717
abstract class RestApiTest extends AnyFunSuite with ScalaFutures {
18-
1918
protected final val MaxConnections: Int = 1 // to timeout quickly
2019
protected final val Connections: Int = 10 // > MaxConnections
2120
protected final val CallTimeout: FiniteDuration = 300.millis // << idle timeout

0 commit comments

Comments
 (0)