特定のアクターが失敗した場合にシステムがどのように動作するかを知ることは非常に重要です。たとえば、リカバリがどのように実行されるか、スナップショットが適切にフェッチされるかなどです。驚いたことに、ドキュメントにはアドバイスが見つかりませんでした。
いくつかの例で見たアプローチは、特別なFail
メッセージを用意し、アクターException
がこのメッセージに対して をスローできるようにすることです。
class MyActor extends Actor {
override def receive =
...
case Fail => throw new Exception("kaboom")
}
プロダクションコードとテストコードが混在していて、疑いを持たない読者に合理的なWTFが生成される可能性があるため、決して使用しないことを願っています.
任意のアクターを適切に失敗させるにはどうすればよいですか?
ありがとうございました