.net core 奥尔良-如何提高提醒精度

.net core 奥尔良-如何提高提醒精度,.net-core,actor,orleans,.net Core,Actor,Orleans,组织提醒+计时器工作的最佳方式是什么 我想在一秒钟内精确地运行一个任务 据我所知,我需要每隔一段时间运行一次提醒。而每次开始的时间间隔都会触发一个计时器,以达到一个特定的时间。 但我应该指定哪一个提醒间隔来实现两个目标: 制定一个非常持久的解决方案(缓解突然出现的筒仓下移、筒仓故障等) 提高达到所需精度的可能性 最小化计时器和提醒开销 提醒表示大致时间(分钟),计时器表示精确时间。您可以将这两者结合起来,创建一个健壮的解决方案 很明显,您需要一些最初创建纹理的东西。您还需要永久存储提醒。然后在

组织
提醒
+
计时器
工作的最佳方式是什么

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

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

  • 制定一个非常持久的解决方案(缓解突然出现的筒仓下移、筒仓故障等)
  • 提高达到所需精度的可能性
  • 最小化计时器和提醒开销

提醒表示大致时间(分钟),计时器表示精确时间。您可以将这两者结合起来,创建一个健壮的解决方案

很明显,您需要一些最初创建纹理的东西。您还需要永久存储提醒。然后在ActivateAsync()中创建提醒和计时器

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

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

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

            await me.DoSomethingForAScoobySnack();
        }
专用异步任务SnapshotTimerFired()
{
var me=this.AsReference();
等着我,有什么事吗;
}
通过调用grain,运行时将知道grain处于活动状态,并尝试由于内存压力而不停用