在 Azure WebJob 运行 之后更新 UI
Update UI after Azure WebJob ran
我有一个 运行 的 Web 作业,它会在收到队列消息后更新数据库。此消息通常作为 ASP.NET MVC 应用程序中某个进程的一部分触发。
现在我想在 UI 上添加一个按钮,这样用户就可以将作业的消息排队到 运行,但我想为用户更新视图触发作业,结果来自 azure webjob。
我最初想到了 WebHooks,但这不是 Webhooks 的设计目的。我唯一能想到的另一件事可能是像 SignalR 这样的东西。
在 WebJob 中这不是一项过长的任务 运行,但它以这种方式解耦是有充分理由的,我想使用相同的代码而不重复。
我也可以轮询数据库以查看数据是否已更新,但我真的不想这样做,因为如果没有更新数据,我就不会真正知道作业已经完成。轮询只是解决此问题的错误方法。
所以本质上,会发生以下情况:
用户请求更新 -> 将更新请求添加到队列 -> WebJobs 触发器和处理请求 -> 用户的页面已用结果更新。
User request update -> update request added to queue -> WebJobs triggers and process request -> Page for the user is updated with the result
SignalR 是一个可用于开发 real-time 网络功能的库,您可以调用集线器方法从您的 WebJob 更新网络应用程序 UI。如果你想 save/update 数据到你的 SQL 数据库并向浏览器广播更新通知,你可以使用 SignalR and SQL Dependency to build a real-time notification solution. Besides, this blog explained how to communicate from an Azure WebJob to your website with SignalR,请参考它。
我有一个 运行 的 Web 作业,它会在收到队列消息后更新数据库。此消息通常作为 ASP.NET MVC 应用程序中某个进程的一部分触发。
现在我想在 UI 上添加一个按钮,这样用户就可以将作业的消息排队到 运行,但我想为用户更新视图触发作业,结果来自 azure webjob。
我最初想到了 WebHooks,但这不是 Webhooks 的设计目的。我唯一能想到的另一件事可能是像 SignalR 这样的东西。
在 WebJob 中这不是一项过长的任务 运行,但它以这种方式解耦是有充分理由的,我想使用相同的代码而不重复。
我也可以轮询数据库以查看数据是否已更新,但我真的不想这样做,因为如果没有更新数据,我就不会真正知道作业已经完成。轮询只是解决此问题的错误方法。
所以本质上,会发生以下情况: 用户请求更新 -> 将更新请求添加到队列 -> WebJobs 触发器和处理请求 -> 用户的页面已用结果更新。
User request update -> update request added to queue -> WebJobs triggers and process request -> Page for the user is updated with the result
SignalR 是一个可用于开发 real-time 网络功能的库,您可以调用集线器方法从您的 WebJob 更新网络应用程序 UI。如果你想 save/update 数据到你的 SQL 数据库并向浏览器广播更新通知,你可以使用 SignalR and SQL Dependency to build a real-time notification solution. Besides, this blog explained how to communicate from an Azure WebJob to your website with SignalR,请参考它。