ServiceStack没有服务器端异步支持

2023-11-26

我的一个朋友告诉我他过去看过 ServiceStack。说它看起来不错,但没有异步支持,所以在他的书中,它不是使用这个框架的选项(如果没有异步就不好),我必须同意。

除非ServiceStack添加了异步,否则不确定这对我来说是否是一个不错的选择。

这让我想知道:如果没有异步,stackoverflow 是否真的使用了这个? b) 如果 a 是肯定的,那么它显然一定是它的高度定制版本,可能有异步功能?

我确信 stackoverflow 的有人可以回答这篇文章。


ServiceStack v4 中添加了服务器端异步

The 最需要的功能,添加了服务器端异步支持,其中 ServiceStack 中的 HttpHandler 现在继承自通用HttpAsyncTaskHandler实现的基类IHttpAsyncHandler。这使您可以通过多种方式从服务返回异步任务,如下所示AsyncTask 测试.cvs

例如。服务现在可以具有对象、任务或异步任务返回类型,它们可以返回已启动或未启动的任务(我们将自己启动)。这次过渡非常顺利,所有现有服务都像以前一样继续工作并且所有测试都通过了。

ServiceStack 服务客户端中基于任务的异步

为了匹配新的服务器端异步故事,现在所有项目都已升级到 .NET 4.0,所有服务客户端都已更改为为所有异步操作返回 .NET 4.0 任务,以便它们可以在 C# 的 async/await 方法中使用。异步操作的一些示例:AsyncRestClientTests.cs

异步 API 还提供 OnDownloadProgress 回调,您可以利用该回调在 UI 中提供进度指示器,例如:AsyncProgressTests.cs

Http Utils 中的异步 API

异步重载也已添加到 HTTP Utils 中它提供了一个很好的 API 来调用外部第 3 方(即非 ServiceStack)HTTP 服务。


缓存提供比异步更好的性能

不确定现实世界的测量结果得出这样的结论:异步对于维护高性能系统是必需的,因为良好的缓存策略将提供比异步更好的性能。有许多高性能服务和网站不使用异步,例如YouTube 采用 100 万行阻塞 Python 构建,每天可处理 40 亿次观看次数,最近 Disqus 发布了他们如何让 Django(一个重型 Python Web 框架)利用 HTTP 缓存扩展到 80 亿页面浏览量。对于大多数多线程站点/服务(例如 .NET/Ruby/Python),阻塞 IO 是常态,而不是异步 - 就像所有过早的优化一样,应该测量它是否真正产生任何最终用户/利用效益。

StackOverflow 使用 ASP.NET 的 Sync MVC 控制器

StackOverflow 本身是一个 ASP.NET MVC 网站,它使用标准同步 MVC 控制器,并采用良好的缓存策略,该策略利用本地和分布式缓存,并利用 ServiceStack 的 JSON 序列化器。因此即使使用同步 MVC 控制器StackOverflow 的服务器利用率非常高,每月可处理 9500 万页面浏览量。堆栈溢出职业2.0是什么使用了ServiceStack及其RedisMQ 支持用于其所有后台操作。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ServiceStack没有服务器端异步支持 的相关文章

随机推荐

  • 未接收 Firebase 云消息/通知。 JS

    我正在尝试使用云功能将 FCM 发送到我的 React 应用程序 云函数正在执行 但客户端未收到通知 这里是云函数代码 exports sendPush functions database ref settings2 onWrite ev
  • 如何使用正确的编码将所有控制台输出重定向到 Swing JTextArea/JTextPane?

    我一直在尝试将 System out PrintStream 重定向到 JTextPane 除了特殊区域设置字符的编码之外 这工作得很好 我找到了很多关于它的文档 参见 ex Mindprod 编码页面 但我仍在与之斗争 StackOver
  • 在 Objective C 中隐藏头文件中的实例变量

    我遇到了一个用 Objective C 编写的库 我只有头文件和 a 二进制文件 在头文件中 是这样的 interface MyClass MySuperClass nothing here property nonatomic retai
  • 关键字“params”到底如何工作?

    以下代码示例打印 T T T 虽然前两行符合预期 但为什么编译器选择 param array 作为常规数组 public class A public void Print
  • Android 上的 Google 语音识别器需要互联网吗?

    我使用以下代码来调用谷歌的语音识别器 This is a demonstration of Android s built in speech recognizer package com example voiceinputbuiltin
  • 删除矩阵中的重复列

    我有一个尺寸为401 5677的数据集 在该矩阵的列中 存在相同但列名不同的列 现在 我想只保留重复多次的列中的一列 并获取已删除列的索引 j 让我们使用以下矩阵作为示例 B matrix c 1 4 0 2 56 7 1 4 0 33 2
  • 允许更多 WebGL 上下文

    我目前正在开发一个包含项目列表的网站 每个项目都有一个缩略图 我使用以下方法为所有项目添加着色器效果PixiJS 问题是列表中的项目超过 16 个 因此我收到以下错误 警告 活动的 WebGL 上下文过多 最旧的上下文将丢失 有没有办法提高
  • 在 JavaScript 中创建多行字符串

    我在 Ruby 中有以下代码 我想把这段代码转换成 JavaScript JS 中的等效代码是什么 text lt lt HERE This Is A Multiline String HERE Update ECMAScript 6 ES
  • 如何在 Eclipse 中关闭 ViewPart?

    我在 Eclipse 中有一个视图 由一个扩展的类实现 org eclipse ui part ViewPart 我需要关闭它 我的意思是完全接近 而不仅仅是隐藏 我希望当用户 或我的代码 要求再次打开视图时创建一个新的 ViewPart
  • Cookie 总是过期的

    我正在设置一个 cookie HttpCookie cookie new HttpCookie simpleorder cookie Expires DateTime Now AddYears 1 cookie order carModel
  • 如何添加网络安全配置以在 Nougat 中启用 Charles 代理 SSL?

    我正在尝试启用Charles Proxy我的 SSLSamsung s8运行于Android Nougat但不知道该怎么做 Before Nougat我能够成功记录我的设备上多个应用程序的查尔斯会话 已关注this and this设置一切
  • 类型错误:Firebase 不是函数

    我正在尝试遵循 firebase Node 教程 https www firebase com docs web quickstart html 我的 node js 应用程序因 TypeError Firebase 不是函数 错误而崩溃
  • C++11 可以判断 std::thread 是否处于活动状态吗?

    令我惊讶的是 一个已完成执行但尚未加入的 C 11 std thread 对象仍然是经过考虑的活动的执行线程 以下代码示例对此进行了说明 在 Xubuntu 13 03 上使用 g 4 7 3 构建 有谁知道 C 11 标准是否提供了一种方
  • MVC DropDownListFor Null 值

    我在 MVC 中使用 htmlhelper 的下拉列表时遇到问题 当回发发生时 没有选择任何内容 并且列表模型中的值和所选项目为空 这是我的模型 namespace MvcTestWebApp Models public class Cus
  • 使用“for”循环对包含数字的数组进行排序

    我是 JavaScript 新手 我有一个包含数字的数组 var arr 2 4 8 1 5 9 3 7 6 我如何使用本地人对其进行排序for loop在 JavaScript 中 我知道排序功能可用 但我希望它通过for loop 输出
  • 如果出现错误,如何使用 try...catch 并让我的脚本停止?

    我试图让我的脚本在遇到错误时停止 并使用 try catch 为我提供一种简单的方法来处理错误 我本以为这是世界上最简单的事情 但我显然在做一些愚蠢的事情 我读了几个小时 但我被困住了 任何帮助都会非常方便 谢谢 这是一些示例代码 我把错误
  • CSS 框上的斜角[重复]

    这个问题在这里已经有答案了 我使用 CSS 的时间很短 我正在尝试制作一个普通的盒子 但左上角以 45 度角切掉 数额也不小 我正在看那个角度的一个相当大的切角 这个效果 我该怎么办 描述 倾斜 http meyerweb com eric
  • Swift 协议继承和通用函数

    考虑以下游乐场 import Foundation protocol StringInitable init string String class A StringInitable var stored String required i
  • 如何在 Apache Spark 中获取上一行的数据

    从 Spark Data 框架中查找每个城市上个月的销售情况 City Month Sale c1 JAN 2017 49 c1 FEB 2017 46 c1 MAR 2017 83 c2 JAN 2017 59 c2 MAY 2017 6
  • ServiceStack没有服务器端异步支持

    我的一个朋友告诉我他过去看过 ServiceStack 说它看起来不错 但没有异步支持 所以在他的书中 它不是使用这个框架的选项 如果没有异步就不好 我必须同意 除非ServiceStack添加了异步 否则不确定这对我来说是否是一个不错的选