对于异步任务的简单通知,SignalR 是否矫枉过正?

Is SignalR overkill for simple notifications on async tasks?

当前的 .NET MVC 5 网络应用程序在某处包含一个按钮,该按钮调用控制器方法生成 SSRS 报告,然后通过电子邮件将其发送给某些收件人(具有适当的层,但它仍然是一个请求)。

在将此标记为长 运行 任务后,我们切换到使用 HangFire 启动后台任务。所以现在控制器只安排后台任务和 returns 一条 "Task started" 消息给用户。

随着任务的进行,我们希望将任务结果通知给用户。为了在 .NET 环境中寻找现代方法来执行此操作,我们决定试用 SignalR,它的简单性导致在客户端上快速轻松地实现异步服务器触发的通知。

这是 SignalR 的过度设计应用程序吗?每当用户刷新页面时只检查新警报是否更好?我们是在浪费 SignalR 上的资源,还是图书馆即使每小时处理大约 10-20 条消息也有效率?

我会说你每秒最多更新 3 次就没问题了 - 即使这样你也可以更快地进行警告。是的,您可以在单个节点上轻松处理数百个问题。

SignalR 看起来非常适合您的解决方案。任何需要实时更新的 ASP.NET 站点都应该使用它。