保証

2017-11-13 10 views
0

は考え、特定の状態では、アッカの俳優Aは子役のBを作成し、多くの参照を含む実際のデータオブジェクトSmartDetailsで変換されます。保証

SmartDetailsBActorのコンストラクタで作成され、今アッカ俳優Aに送信しなければならない

BからAへ、それを

が送信するときに、私はSmartDetailsがシリアライズされないという保証を持っている必要があります

これはakkaで進むための有効な方法ですか?
私たちはそれをテストし、動作します。つまり、シリアル化されていません。

私はここでドキュメントを探しています。子アクターが親アクターと同じプロセスで作成され、そのシリアライゼーションは行われないという声明を見つけることができます。

SmartDetailsが大きすぎるため、メッセージSmartDetailsがシリアル化されると、akkaがクラッシュします。

RawDetailsは、別の俳優からシリアライズされた形式であり、小さなシンプルなパケットで出荷されました。

答えて

1

デフォルトでは、同じActorSystem(同じプロセスとAppDomain)内のメッセージはシリアル化されません。そのため、なぜ不変であるかが重要です。

ドキュメントはそれhereに言及し、「検証」セクションの下:

通常、地元の俳優(すなわち、同じCLR)との間で送信されるメッセージは は、シリアライズを受けません。テストのために、時には、すべてのメッセージ(リモートとローカルの両方)に強制的にシリアル化することが望ましい場合があります( )。

ただし、リモート/クラスタリングを介して別のアクタシステムに送信されたメッセージは、シリアル化されます。

+0

ありがとう、これは私が自分自身を見つけることができなかったものです。 – Gerard

+0

問題ないです。喜んで助けてください! – easuter

関連する問題