servicestack - 如何使用 Servicestack 缓存内部服务调用
问题描述
是否可以缓存服务器对通过 Gateway.Send() 从另一个服务中完成的服务调用的响应?
我看到您的评论指出,如果我使用 [CacheResponse] 属性启用缓存,它应该可以工作。
但是,它并没有为我缓存响应。我正在使用 ServiceStack v5.1.0
谢谢
解决方案
ServiceStack 缓存功能仅缓存在注册的缓存提供程序中序列化并直接写入响应输出流的 HTTP 请求。
在流程服务网关请求永远不会序列化、缓存或写入流,当调用内部服务时,它们实际上是进程内 C# 方法调用,如果网关请求被路由到缓存的远程服务,它将返回缓存的按照正常的 HTTP 请求响应。
否则,如果您想缓存 In Memory Service Gateway 请求,您可以在 Service 实现中使用 ConcurrentDictionary 并像缓存任何昂贵的 C# 逻辑时那样记忆结果。
推荐阅读
- xcode - Xamarin.iOS xcode 错误:更新目标 C 类型信息时出错
- c# - TFS 2015:发布定义 REST API 问题
- c# - 在 C# 中调用 Cygwin GCC DLL 在 malloc 上挂起
- python - 云之间的间距
- java - 如何保存我的 .java 文件并通过电子邮件发送?(初学者)
- xcode - 第二个 NSScreen OSX 10.13.4 或更高版本上的 NSWindow
- sql - Tableau 和 MariaDB 连接问题
- angular - Angular ViewChild 和 ComponentFactoryResolver - 保持状态
- javascript - window.center().open(); 第一次通话后偏离中心
- javascript - 如果条件没有检测到空语句js