如何使用JournaledGrain进行事件采购

时间:2019-07-16 12:24:02

标签: c# orleans

我是奥尔良的初学者。我想使用JournaledGrain将事件发送到其侦听器。这是我尝试过的。

public class MyJournaledGrain : JournaledGrain<State, Event>, IJournaledGrain
{
    public MyJournaledGrain()
    {


    }

    public void RaiseEvent()
    {

        Trace.WriteLine(" hi ");
        this.RaiseEvent(new Event());
        this.ConfirmEvents();

    }


    protected override void OnStateChanged()
    {
        // some thing ...
        base.OnStateChanged();
    }

    protected override void TransitionState(State state, Event @event)
    {

        base.TransitionState(state, @event);
    }
}

在OnStateChanged方法中,我可以引发事件,但发送者和接收者都在一个类中。我想要类似pub / sub模式的东西。是否有可能通过ms orleans实现? 谢谢

1 个答案:

答案 0 :(得分:0)

事件源和发布/订阅是2个独立的事物:

  • 事件源是用于谷物的状态持久化
  • Pub / sub用于谷物之间的消息传递

对于发布/订阅,您需要Orleans Streams:https://dotnet.github.io/orleans/Documentation/streaming/index.html