我们正在考虑将Service Fabric Actor Timers用于某种TTL管理服务。它有可能同时拥有100个数十万个演员计时器。我们担心一次运行这么多参与者计时器的开销,但似乎没有任何关于参与者计时器的性能影响或底层机制的文档。任何指导将不胜感激。
据我所知,Actor's Timer 在引擎盖下使用轻量级的"System.Threading.Timer",创建一个委托,该委托具有代码,可以在时机成熟时向您的"唤醒"回调发送调用。似乎调度就像任何其他传入请求一样发生,所以我想说几个带有委托的额外类是拥有 SF Actor 计时器的成本。
当然,如果你需要在计时器的回调中执行大量工作,那么它会锁定你的actor,所以这也取决于有多少请求会被阻止以及你可以多快离开回调。