2017-07-27 84 views
0

我們正在考慮將服務結構演員定時器用於某種TTL管理服務。它有可能有100個成千上萬的演員定時器。我們擔心這麼多演員定時器一次只能運行一段時間,但似乎沒有任何關於演員定時器的性能影響或潛在機制的文檔。任何指導將不勝感激。服務結構演員定時器性能影響

+0

那麼,因爲演員定時器[只是使用普通定時器](https://github.com/Azure/service-fabric-services-and-actors-dotnet/blob/develop/src/Microsoft.ServiceFabric.Actors/ Runtime/ActorTimer.cs),它不是真正的服務結構/演員特定的。 –

+0

他們不僅僅是普通的定時器。它們的構建是爲了尊重他們註冊的演員的基於回合的併發性。所以,根據演員處理多少其他流量,肯定會有性能方面的考慮 –

+0

@Jessie Carter演員的責任只是在TTL並有能力被取消。 – Tony

回答

1

從我所知道的,Actor的Timer使用了一個輕量級的'System.Threading.Timer',它創建了一個委託,它有一個代碼,當時間到了時向你的'喚醒'回調派發一個調用。看起來派遣發生就像任何其他傳入的請求會有,所以我會說,帶有委託的幾個額外的類是SF演員定時器的成本。

當然,如果你需要在定時器的回調中執行很多工作,那麼它會鎖定你的演員,所以它也取決於有多少請求會被阻止,以及你能夠多快地離開回調。