【发布时间】:2014-12-30 09:51:47
【问题描述】:
我使用喷射路由指令编写了以下代码:
path("goal" / Segment) { id =>
get {
detach(ec) {
val goal = srv.find(id)
complete(goal)
}
} ~
delete {
detach(ec) {
srv.delete(id)
complete(OK)
}
}
}
问题是执行路径很奇怪。首先它进入
get->detach->srv.find->complete
然后
删除 -> 分离 -> srv.delete -> 完成
然后它回到
get->detach->...
并在那里完成。问题是执行了 srv.delete,这不是所需的行为,因为我丢失了数据。谁能解释我这种行为并告诉我如何解决它?
提前致谢。
【问题讨论】:
-
我也遇到过类似的问题,因为路线没有充分隔离,所以后来的部分正在评估。但是
delete指令应该防止这种情况。没有detaches 也会发生同样的事情吗?