2017-02-13 79 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,請參閱它。