【发布时间】:2014-12-21 01:45:47
【问题描述】:
我正在开发一个显示当前人员配置数据的 ASP.NET MVC 5 应用程序,并在人员配置发生变化时使用 SignalR 通知连接的客户端。这对于实时事件非常有用(“我现在需要下班。”),但现在我需要处理预定的事件,这些事件将来会发生人员变动。
也就是说,一个事件可能会在 3 小时 27 分钟后发生(“我需要在下午 4 点下班”)甚至是 3 个月后发生。事件发生时,应通知已连接的客户端,以便向最终用户显示正确的人员配备数据。当然,未来可能会发生变化,解决方案需要考虑取消或修改已安排的活动。
我很想找到一种干净的方法来做到这一点,它不涉及从客户端频繁轮询以了解即将发生的事件、服务器端休眠的线程等。
【问题讨论】:
-
如何创建服务器端计划作业。然后,服务器可以调用 signalR 集线器将通知推送到客户端。 Quartz.NET 适合这类事情
-
^ 上面推荐。似乎您正试图将调度工作放在您的网络服务器上,这不应该存在。使用单独的任务/调度程序来完成工作,并且可能在触发事件的集线器方法上使用
[Authorize],以确保只有调度程序可以调用它们。客户端将只能接收事件。
标签: asp.net-mvc signalr