gpt4 book ai didi

ServiceStack 没有服务器端异步支持

转载 作者:行者123 更新时间:2023-12-04 21:58:07 25 4
gpt4 key购买 nike

我的一个 friend 告诉我,他曾经研究过 ServiceStack。说它看起来不错,但它没有异步支持,所以在他的书中,使用这个框架不是一个选择(如果没有异步就不好),我不得不同意。

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

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

我相信来自 stackoverflow 的人可以回答这篇文章。

最佳答案

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

most requested feature ,添加了服务器端异步支持,其中 ServiceStack 中的 HttpHandlers 现在继承自通用 HttpAsyncTaskHandler实现 IHttpAsyncHandler 的基类.这允许您以多种方式从您的服务返回异步任务,如 http://bit.ly/1cOJ3hR 所示。

例如。服务现在可以有一个对象、Task 或 async Task 返回类型,它们可以返回一个已启动或未启动的任务(我们将自己启动)。这一转变尽可能顺利,所有现有服务继续像以前一样工作并且所有测试都通过了。

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

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

Async API 还提供 OnDownloadProgress 回调,您可以利用该回调在您的 UI 中提供进度指示器,例如:http://bit.ly/19ALXUW

Http Utils 中的异步 API

Async overloads have also been added to HTTP Utils它提供了一个很好的 API 来调用外部 3rd 方(即非 ServiceStack)HTTP 服务。

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

不确定真实世界的测量结果得出的结论是异步对于维护高性能系统是必需的,因为良好的缓存策略将提供比异步更好的性能。有许多不使用异步的高性能服务和网站,例如YouTube is built with 1M lines of blocking Python to handle 4 Billion views a day ,最近 Disqus 将他们如何让 Django(一个沉重的 Python Web 框架)发布到 scale to 8 billion page views by leveraging HTTP Caching .对于大多数多线程站点/服务(例如 .NET/Ruby/Python),阻塞 IO 是常态,而不是异步 - 就像所有过早的优化一样,应该衡量它是否真的产生了任何最终用户/利用率的好处。

StackOverflow 使用 ASP.NET 的 Sync MVC Controller

StackOverflow 本身是一个 ASP.NET MVC 网站,它使用标准的同步 MVC Controller 并采用良好的缓存策略,利用本地和分布式缓存并利用 ServiceStack 的 JSON 序列化程序。所以即使使用同步 MVC Controller StackOverflow has extremely good server utilization for handling 95M page views/month . StackOverflow Careers 2.0是什么使用 ServiceStack 及其 RedisMQ support用于其所有后台操作。

关于ServiceStack 没有服务器端异步支持,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18902135/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com