0

我正在尝试有条件地更改演员的恢复对象。当一个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.

4

0 回答 0