def start_server(config: AppConfig)
(implicit runtime: Runtime[ZConfig[AppConfig]]): ZIO[AppLayer, StartServerError, Nothing] = {
httpAppR.flatMap { httpApp =>
BlazeServerBuilder[Task](runtime.platform.executor.asEC)
.bindHttp(config.webAppPort, "0.0.0.0")
.withHttpApp(
Logger.httpApp[Task](logHeaders = true, logBody = false)(httpApp.orNotFound)
)
.resource
.toManaged
.useForever
.mapError(StartServerError)
}
}
runtime.platform.executor
mais le blocking
, vu le genre de truc que fait blaze (attendre des requetes, faire des io, etc)
sleep
un moment, et voir si ca pete, et si c'est le cas, c'est forcément dans la config du serveur http
Bonjour,
object webSocketSpec extends MessagingSpec with RestCall {
override def is: SpecStructure = "Specification to check the messaging".title ^ sequential ^
s2"""
UserCreatedMessage ${e1.pendingUntilFixed}
"""
override def userId: UserId = PostUser("user1")
override def token: String = postSession("admin")
def e1 = todo
}
abstract class MessagingSpec extends TestKit(ActorSystem("messagingTests"))
with ImplicitSender
with SpecificationLike
with ClassLogging {
def userId: UserId
def token: String
....
}
lorsque j'exécute la spécification, je constate que le contenu de l'ID utilisateur et du token est nul, car l'exécution des deux méthodes postUser
et postSession
n'est pas encore terminée.
y a-t-il des propositions pour attendre la fin des deux méthodes et prendre les bonnes valeurs ?