Orleans----Grain(Grain Lifecycle)

Orleans grains 使用可观察的生命周期进行有序激活和停用。这允许在grain 激活和收集期间以有序的方式启动和停止grain逻辑,系统组件和应用逻辑。

 

Stages

预定义的grain生命周期阶段如下。

public static class GrainLifecycleStage
{
    public const int First = int.MinValue;
    public const int SetupState = 1000;
    public const int Activate = 2000;
    public const int Last = int.MaxValue;
}

 

  • First - grain生命周期的第一阶段
  • SetupState - 激活前设置grain状态。对于有状态的grain,这是从储存中装载的阶段。
  • Activate- 存储OnActivateAsyncOnDeactivateAsync被调用阶段
  • Last - grain生命周期的最后阶段

虽然谷物生命周期将在谷物活化期间使用,但由于谷物在某些错误情况下(例如筒仓碰撞)并非总是停用,因此应用程序不应依赖谷物生命周期始终在谷物停用期间执行。

粮食生命周期参与

应用程序逻辑可以通过两种方式参与grain的生命周期:grain可以参与其生命周期,和/或组件可以通过grain激活上下文访问生命周期(请参阅IGrainActivationContext.ObservableLifecycle)。

粒子总是参与其自己的生命周期,因此可以通过覆盖参与方法来引入应用程序逻辑。

posted @ 2019-06-28 16:54  我在赫尔辛基火车站  阅读(348)  评论(0编辑  收藏  举报