gpt4 book ai didi

scala - Akka http -错误 :Substream Source cannot be materialized more than once If Payload size increased

转载 作者:行者123 更新时间:2023-12-05 09:18:19 26 4
gpt4 key购买 nike

我正在使用 Akka Http,我将路由定义为

val route = (path(HttpConstants.CreateJob) & post) {
(entity(as[JobDetailsEntity]) & entity(as[JobEntity])) {
(jobDetailsEntity: JobDetailsEntity, jobEntity: JobEntity) =>
val updatedJobEntity = jobEntity.copy(runningSince = DateTime.now().getMillis)
val updatedJobDetailsEntity = jobDetailsEntity.copy(runningSince = DateTime.now().getMillis).copy(modify_date = DateTime.now().getMillis)
complete {
createJobDetails(updatedJobDetailsEntity).map(_.asJson)
createJob(updatedJobEntity).map(_.asJson)
}
}

在这里,我试图在同一个 POST 调用中解码两个实体,当我的 json Payload id 很小时它工作,即几个字节然后它工作正常,一旦有效负载大小增加,即大约 10-20 kb,它会抛出错误:

Substream Source 不能多次实现

最佳答案

请参阅https://github.com/akka/akka-http/issues/745#issuecomment-271571342

简而言之,如果您需要对您的实体进行两次解码,您应该首先使用 toStrict 以确保整个实体都缓冲在内存中,否则它会被第一次解码过程耗尽而无法用于第二个。

如果实体足够小以适合 akka 的内部缓冲区,那么它碰巧在没有 toStrict 的情况下也能正常工作,那么实际上不涉及耗尽​​。

关于scala - Akka http -错误 :Substream Source cannot be materialized more than once If Payload size increased,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44950948/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com