【问题标题】:Azure Service Fabric actor reminder update?Azure Service Fabric 参与者提醒更新?
【发布时间】:2016-09-24 07:36:50
【问题描述】:

假设我有一个可靠的演员在OnActivateAsync 中注册提醒。这个提醒有一个period,它是从一些持久性存储中检索的。一段时间后,演员被垃圾收集。

再过一段时间,演员被调用或提醒触发,OnActivateAsync 被运行时调用。同时,我更新了持久存储中的提醒period

现在会发生什么?我尝试再次注册提醒,但使用不同的period。提醒是否会更新为新的period

另一种情况是演员的更新。假设period 是硬编码的,但新版本的actor 使用不同的period。现在调用OnActivateAsync 并再次注册提醒时会发生什么?

【问题讨论】:

    标签: azure actor azure-service-fabric reminders


    【解决方案1】:

    因此,当您的提醒第一次触发时,您需要检查期间是否已更新,然后取消注册现有提醒并注册一个新提醒。 您无法更新现有提醒 - 使用 GetReminder 查看它是否存在,然后取消注册并创建一个新提醒。

    ```

     var reminder = GetReminder(reminderName);       
      if (reminder != null)                           
      {                                               
          // do something with it...    
      }         
    

    ```

    如果演员代码升级并且您在代码中有一个硬编码的句点(已更改),使用守卫,您将不会注册/更新现有提醒。

    【讨论】:

      【解决方案2】:

      当您再次尝试注册现有提醒时,它会被更新。来自RegisterReminderAsync 文档(https://docs.microsoft.com/en-us/dotnet/api/microsoft.servicefabric.actors.runtime.actorbase.registerreminderasync?view=azure-dotnet):

      也可以通过再次调用此方法来更新现有的提醒。

      【讨论】:

        猜你喜欢
        • 2017-12-17
        • 2016-04-07
        • 2017-07-14
        • 2019-11-30
        • 2016-07-26
        • 2016-03-01
        • 2018-08-18
        • 2018-10-27
        • 2017-12-27
        相关资源
        最近更新 更多