我正在尝试有条件地更改演员的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时进行设置。