假设我有一个可靠的演员在OnActivateAsync
中注册提醒。此提醒具有从某些永久存储中检索的period
。一段时间后,演员被垃圾收集。
经过一段时间调用actor或者提醒器触发,运行时调用OnActivateAsync
。与此同时,我在持久存储中更新了提醒period
。
现在发生了什么?我尝试再次注册提醒,但使用不同的period
。是否会使用新的period
?
另一个案例是演员的更新。假设period
是硬编码的,但演员的新版本使用不同的period
。现在当调用OnActivateAsync
并再次注册提醒时会发生什么?
答案 0 :(得分:2)
因此,当您的提醒第一次触发时,您可以查看该期间是否已更新并取消注册现有提醒并注册新提醒。
您无法更新现有提醒 - 使用Model.reindex
查看是否存在,然后取消注册并创建新提醒。
```
GetReminder
```
如果演员代码升级并且您的代码中有一个硬编码时段(已更改),那么使用后卫,您将无法注册/更新现有提醒。
答案 1 :(得分:1)
当您尝试再次注册现有提醒时,它将会更新。来自RegisterReminderAsync
文档(https://docs.microsoft.com/en-us/dotnet/api/microsoft.servicefabric.actors.runtime.actorbase.registerreminderasync?view=azure-dotnet):
现有的提醒也可以通过再次调用此方法来更新。