- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在从事一个 SignalR 集线器启动 12 个短期运行线程 (new Thread()) 的项目。每个线程使用 websockets 向客户端报告完成。这些线程不是 CPU 密集型的,而是从其他网络服务获取一些信息。
现在我的困境是:我应该创建一个作为服务运行的独立自托管 signalR 集线器应用程序,还是应该只将集线器包含在我的 asp.net MVC 项目中?
什么是最佳性能?
最佳答案
在 .net 4.5 及更高版本中执行此操作的正确方法是执行此单线程异步。
ASP.Net should NEVER be creating new threads .在 ASP.Net 中显式使用线程会带来巨大的性能影响。
您还应该知道线程是有限 CPU 资源的抽象(您通过声明您的线程不是 CPU 密集型来注意到这一点)。从 .net 4.5 开始,这应该告诉您不应该使用线程。 Instead, in this case you should be using a threadless I/O api to call your webservices.我建议您使用 TAP(又名 async
await
)模式,它基本上是 .net 4.5。
这应该允许您使用功能适中的机器扩展到数千个并发请求。
如果您拥有所有这些,使用 TAP,ASP.Net MVC/IIS 将能够很好地处理大规模并行化和“线程”。在这种情况下,我会强烈建议不要使用 Windows 服务,因为使用 IIS 作为 Bootstrap (处理生命周期,并在服务死机时重新启动服务)会更稳定.
关于c# - SignalR hub 是否自托管?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23506633/
这是 Controller 方法,它接收应该被踢出的userName。 public ActionResult Kick(string userName) { var h
ASP.NET SignalR Hubs API 指南 - 服务器 ( https://learn.microsoft.com/en-us/aspnet/signalr/overview/guide-
我知道程序以及如何从 GitHub 或 BitBucket 配置自动化 docker hub。 但是我现在要做的是创建两个名为 Test/main 的 docker hub 存储库。和 Test/de
这是场景: Device1同时发送两条iothub D2C消息: 这会将标志设置为 true 这会将标志设置为 false 物联网消息路由将消息路由到 eventhub,这将触发 EventHubTr
关闭。这个问题是not reproducible or was caused by typos .它目前不接受答案。 这个问题是由于错别字或无法再重现的问题引起的。虽然类似的问题可能是on-topi
我是 selenium 的新手,我一直在尝试启动 Selenium Hub 并使用 java 将节点添加到 Hub。我已使用命令提示符启动它,但我希望它自行发生。我能够启动 Hub,但不知道如何添加节
我正在使用 SignalR 项目,我想在 WebApi 项目和 Web 项目中使用 Hub。所以我创建了一个类库项目并在那里实现了 Hub。 我的项目结构如下: -ChatHub -Hub -We
在开始之前,我想提一下,这并不完全是重复的,其他类似的问题对我的情况没有任何有用的答案。 在我的 ASP.Net Core 2.1 中,我有一个可以使用 AJAX 调用的操作(它的名称是 Create
我得到以下堆栈跟踪: { “状态”:13 “值(value)”: { “class”:“java.lang.NullPointerException”, “堆栈跟踪”: [ { “fileName”:
这是我当前的设置: 从 Bitbucket 获取存储库 使用 Amazon Linux 2 AWS 托管镜像构建 docker 镜像 将图像推送到 ECR 我现在有时会在 docker 构建阶段收到
我开发了一个 PDF Converter / Viewer for Windows Phone 7 , 但除非它可以从某处获取源文件(Word、Excel、PowerPoint 等),否则它毫无用处。
在 ASP.Net MVC 5 项目的根目录中创建 SignalR 2 Hub 类工作得很好。您可以访问 ~/signalr/hubs url 并返回代理。您还可以将该类放在名为 Hubs 或类似名称
我正在从我的工作站测试 ML DHF Quickstart Hub,并且可以很好地连接到 MarkLogic 的本地实例。但是当我创建一个新的环境 gradle-DEV.properties 文件并尝
我想监视来 self 的应用程序的一些事件。 一种选择是将数据发送到 Azure 事件中心并使用流分析进行一些后处理并将数据输入到 cosmos db 中。 另一个选项是从应用程序存储到 cosmos
我想监视来 self 的应用程序的一些事件。 一种选择是将数据发送到 Azure 事件中心并使用流分析进行一些后处理并将数据输入到 cosmos db 中。 另一个选项是从应用程序存储到 cosmos
(我是 Signalr 新手) 我正在开发一个 Web 应用程序,它使用 Signalr-core 来实时更新页面。 我遇到的问题是,当我运行多个客户端时,我正在运行的方法将同时运行与客户端数量一样多
我是 SignalR 库的新手。我在 VS2010 中创建了一个新的 Web 项目,然后在包管理器控制台中我执行了以下命令来设置 SignalR 包。 PM> Install-Package Micr
我将我的Docker镜像标记为foo/foo:latest 当只有一张图片时,可以做docker push 但是由于我总是将它们标记为foo/foo:latest,所以我想知道是否可以上传不是最新生成
我有一个容器,我想对其进行更改。 它托管在docker hub上,我想更改其命令之一以安装其他应用程序。 我可以在docker hub中看到各个步骤,但不能看到dockerfile本身(不确定原因)。
我正在尝试找到一种方法,可以在短时间内将100幅图像推送到Docker集线器。有没有更好,更有效的方法来做到这一点? alpine:1.0.0.0 alpine:2.0.0.0 . .. ... al
我是一名优秀的程序员,十分优秀!