通过signalR定期(预定)和按需更新客户端

时间:2014-04-08 02:28:12

标签: .net signalr

我正在构建一些使用SignalR将数据推送到客户端的东西,这是正常的。我正在讨论的是如何处理推动。

可以通过定期计划(即每天下午5点)推送数据,或者如果用户访问网站并立即点击推送,它将立即发送数据。

我是否应该创建一个无限循环的后台应用程序来决定是否需要发送推送(听起来像是浪费cpu而且考虑到我有共享主机而不是拥有服务器的挑战)?在大多数情况下,如果有办法在变更事件上挂钩数据,那么一切都可以由数据库驱动。与此同时,我并不完全信任sql触发器并被共享atm,我无法启用clr。这将最终用于相当多的连接机器(容易同时250k +),因此效率是一个问题。

注意:网站的核心是用mvc .net构建的。

1 个答案:

答案 0 :(得分:4)

您可以创建一个CronJob来执行此操作。您可以使用this oneAzure WebJobs或其他。

编辑: 让我多一点帮助你,我之前已多次在这种情况下工作,这在许多应用程序中很常见。

首先,您应该创建一个方法控制器,当触发时,应该在应用程序中发生所需的效果。这方面的一个例子是控制器方法,每次调用它时,都会更新数据库中的某些条目。

编写完控制器后,测试它。确保一切按预期工作。如果您要将数据写入数据库,这是非常关键的一点,因为操作将自动发生。

然后,阅读有关Cronjobs或webjobs的信息。它们基本上是对URL的调用,可以及时设置。例如,你可以创建一个每周每分钟http://yoursite.com的cronjob。

最后,创建一个调用控制器方法的Cronjob。 (如果您的应用程序未发布,您将无法测试cronjob,通过在浏览器栏中键入控制器URL来本地测试方法)