.net-core - 奥尔良 - 如何提高提醒的准确性
问题描述
Reminders
哪种组织+工作的最佳方式Timers
?
我想在一秒钟内精确地运行一项任务。
据我了解,我需要以一定的间隔运行提醒。并且间隔的每个开始都会触发一个计时器以达到特定的时间。但是我应该指定哪个提醒间隔来实现两个目标:
- 制定一个非常持久的解决方案(缓解突然的筒仓缩减、筒仓故障等)
- 增加实现所需精度的可能性。
- 最小化计时器和提醒开销
解决方案
提醒用于大致时间(分钟),计时器用于精确时间。您可以通过将两者结合起来创建一个强大的解决方案。
显然,您将需要最初产生谷物的东西。您还需要持久存储提醒。然后在中创建一个提醒和一个计时器OnActivateAsync()
。
在提醒回调中检查计时器是否存在,必要时重新创建它。
在计时器回调中,确保调用grain方法
private async Task SnapshotTimerFired()
{
var me = this.AsReference<IScoobyDoGrain>();
await me.DoSomethingForAScoobySnack();
}
通过调用grain,运行时会知道grain是活着的并且try
不会因为内存压力而停用
推荐阅读
- python - 谷歌可编程搜索引擎在一段时间后停止工作
- microsoft-graph-api - 无法将任务中的 Teams/SharePoint 文件附件添加到“Planner 的任务和待办事项”
- c# - Xamarin Hot Reload 没有初始化失败
- discord - 当我尝试激活我的不和谐机器人时出错
- cypress - 在 Headed 模式下运行“Run x integration specs”时,Cypress allure 插件不会生成完整报告
- css - 什么时候应该使用 user-select:contain?
- android - 获取 AAPT:错误:文件无法在 Android Studio 中编译错误。为什么我们会不一致地收到此错误?
- html - 使用 CSS 和 HTML 在导航栏上方制作横幅,徽标/图标浮动在文本左侧
- c++ - 为什么 codeclass.AddVaruable 总是在 C++ 中添加一个静态变量
- javascript - 检查子输入时更改父块背景(vanilla js)