【问题标题】:Orleans - how to improve reminders precision奥尔良 - 如何提高提醒的准确性
【发布时间】:2020-09-24 23:11:10
【问题描述】:

组织Reminders + Timers 工作的最佳方式是什么?

我想在一秒钟内精确地运行一项任务。

据我了解,我需要以一定的间隔运行提醒。并且间隔的每个开始都会触发一个计时器以达到特定的时间。 但是我应该指定哪个提醒间隔来实现两个目标:

  • 制定一个非常持久的解决方案(缓解突然的筒仓缩减、筒仓故障等)
  • 增加实现所需精度的可能性。
  • 最大限度地减少计时器和提醒开销

【问题讨论】:

    标签: .net-core actor orleans


    【解决方案1】:

    提醒用于大致时间(分钟),计时器用于精确时间。您可以通过将两者结合起来创建一个强大的解决方案。

    很明显,您将需要一些最初能产生颗粒的东西。您还需要持久存储提醒。然后在OnActivateAsync() 中创建提醒和计时器。

    在提醒回调中检查定时器是否存在,必要时重新创建。

    在定时器回调中,确保调用grain方法

            private async Task SnapshotTimerFired()
            {
                var me = this.AsReference<IScoobyDoGrain>();
    
                await me.DoSomethingForAScoobySnack();
            }
    

    通过调用grain,运行时会知道grain是活着的并且try不会因为内存压力而停用

    【讨论】:

      猜你喜欢
      • 2020-12-08
      • 2020-03-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-30
      • 2021-09-16
      相关资源
      最近更新 更多