2017-02-13 77 views
0

我有一个Web作业,它在接收到队列消息后运行并更新数据库。此消息通常作为ASP.NET MVC应用程序中某个特定进程的一部分触发。Azure WebJob运行后更新UI

现在我想在UI上添加一个按钮,以便用户可以排队消息以使作业运行,但是我想更新视图,触发作业的用户使用来自天蓝色的webjob。

我最初想到WebHooks,但这不是webhooks设计的。我唯一能想到的其他事情可能就是SignalR。

这不是一个运行在WebJob中的过长的任务,但是有一个很好的理由是它以这种方式分离,并且我希望使用相同的代码而不会有重复。

我也可以轮询数据库,看看数据是否更新,但我不想这样做,因为如果没有数据更新,我不会真的知道这项工作已经完成。轮询只是解决这个问题的错误方式。

所以实质上,会发生以下情况: 用户请求更新 - >更新请求添加到队列 - > WebJobs触发器和处理请求 - >页面更新结果。

回答

1

用户请求更新 - >更新请求添加到队列 - > WebJobs触发器和处理请求 - >网页供用户与结果更新

SignalR是可能被用来开发库实时网络功能,您可以调用hub方法从WebJob更新Web应用程序UI。如果您希望将数据保存/更新到SQL数据库并向浏览器广播更新通知,则可以使用SignalR and SQL Dependency来构建实时通知解决方案。此外,这个博客解释如何communicate from an Azure WebJob to your website with SignalR,请参阅它。