如何使用Servicestack缓存内部服务调用

时间:2018-12-14 16:44:01

标签: servicestack

是否应该将服务器对通过Gateway.Send()从另一个服务中进行的服务调用的响应进行缓存?

我已经看到您的评论,指出如果我通过[CacheResponse]属性启用缓存,那么它应该可以工作。

但是,这并不是为我缓存响应。我正在使用ServiceStack v5.1.0

谢谢

1 个答案:

答案 0 :(得分:1)

ServiceStack缓存功能仅缓存HTTP请求,这些HTTP请求在已注册的Cache provider中进行序列化,并直接写入响应输出流。

处理中的Service Gateway请求永远不会序列化,缓存或写入流中,如果网关请求被路由到远程服务,则它们实际上是在调用内部服务时在处理C#方法。缓存后,它将根据正常的HTTP请求返回缓存的响应。

否则,如果要缓存“内存中的服务网关”请求,则可以在服务实现中使用ConcurrentDictionary,并像缓存任何昂贵的C#逻辑时那样记住结果。