有条件地更改Akka.Persistence Recovery对象

时间:2018-09-17 14:06:36

标签: akka.net akka.net-persistence

我正在尝试有条件地更改演员的Recovery对象。当actor旋转起来并且没有快照或事件一直存在时,我将重新启动actor。重新启动后,我想更改Recovery对象。这是我目前设置演员的方式:

protected Recovery _recovery = Recovery.Default;
public override Recovery Recovery => _recovery;

PostRestart()方法中,我有:

protected override void PostRestart(Exception reason)
{
    // EmptyJournalException is a custom exception
    if (reason is EmptyJournalException)
    {
        // Other code here...
        _recovery = new Recovery(SnapshotSelectionCriteria.None);
    }
}

但是,当再次进行恢复过程时,它仍在应用快照。如果我更改_recovery的值以忽略构造函数中的快照 ,它将按预期工作。但是,在PostRestart()中进行设置时,它将被忽略。

有条件地设置Recovery属性的最佳方法是什么?由于EmptyJournalException,我只想在重新启动actor时进行设置。

0 个答案:

没有答案