2016-01-06 70 views
0

我爲我們的新服務使用了azure服務結構。Azure服務結構 - 長時間返回結果

對於面向客戶端的網關,我有一個無狀態的服務獲取請求,實際的工作是使用可靠的無狀態actor。

正如Sean McKenna - MSFTquestion中所建議的那樣,我將傳入的請求放在ReliableQueue中並將結果存儲在ReliableDictionary中。

演員的工作時間可能需要長達10分鐘,所以我的問題是如何在如此長時間後將結果推回客戶端?

在我們的案例中,客戶端輪詢是不可能的。

首先,我需要每天支持10k個請求,稍後它會變得更高,更高。

+0

也許使用類似Firebase/SignalR的東西推動結果? –

+0

我雖然使用SignalR,但看起來SignalR更適用於整個羣組(比如IRC),而不是單個客戶端,我看到一些建議如何向單個用戶發出信號,只是想確保這是最好的辦法。像在這裏 - http://stackoverflow.com/questions/19522103/signalr-sending-a-message-to-a-specific-user-using-iuseridprovider-new-2-0 – Kulpemovitz

+0

我相信它會沒事的,你也可以選擇哪個用戶發送你的數據。典型的聊天應用程序只發送給單個用戶並且爲此設置SignalR是正常的。 –

回答

2

當涉及到像這樣的事情時,Service Fabric不會以任何方式限制您 - 您應該像嘗試其他任何平臺一樣嘗試解決問題。

您可以使用發佈/訂閱解決方案(例如服務總線),或者客戶端甚至可以提供可以從演員/服務接收狀態更新的API。

+0

我喜歡讓客戶提供更新API的想法。 10x – Kulpemovitz

+0

酷 - 請考慮標記問題爲答案:)當然好友 – charisk

+0

,讓我測試幾件事情,看看其他的選擇 – Kulpemovitz