0

大家好,我正在使用带有 routeCache 方法的喷雾路由缓存指令来缓存我的 api 调用。

但问题是,如果您的 api 由于某种原因返回 500,那么在这种情况下,spray 也会缓存该值并继续返回 500,直到缓存过期。

那么我怎样才能在喷雾缓存中只缓存 200 个 OK 响应而不是其他响应。

4

1 回答 1

0

以下工作

而不是做

ctx.complete(ErrorCode, Error)

做过

ctx.failWith(Error)

参考:

(1) https://github.com/spray/spray/blob/master/spray-caching/src/main/scala/spray/caching/LruCache.scala#L79

设置了failWithisFailure,因此未设置缓存

(2) http://spray.io/documentation/1.2.2/spray-routing/route-directives/failWith/

为了维护正确的状态代码,可以使用上面链接中解释的自定义异常处理程序

于 2016-08-12T10:07:47.553 回答