1
私は、Find
,Query
のようないくつかのメッセージを管理し、他のタイプのアクターに新しいメッセージを転送するAkkaアクターを持っています。これらの俳優は新しいタイプのメッセージで応答します。上記の例でAkkaアクターで複数の受信機能を作成する
class Actorbase extends Actor {
override def receive = {
/* The two message below are related to each other */
case Find(coll, id) => // Do something
case QueryAck(key, value, u) => // Do something
/* The three message below are related to each other */
case Upsert(collection, id, value) => // Do something
case Response.UpsertNAck(key, msg, u) => // Do something
case Response.UpsertAck(key, u) => // Do something
/* And so on... */
}
}
、QueryAck
型Find
のメッセージの順方向の応答メッセージです。 UpsertNAck
およびUpsertAck
は、Upsert
メッセージに対する可能な応答です。
case
の2つのセットを2つの専用メソッド、つまりmanageQueries
とmanageUpserts
にグループ化して、次のコードに類似したものを取得したいと思います。
class Actorbase extends Actor {
override def receive = {
manageQueries.andThen(manageUpserts)
}
}
が可能ですか? Receive
オブジェクトを返す複数のメソッドを宣言して何らかの方法でそれらを作成する必要がありますか?
ありがとうございます。
感謝を助けます。私が質問に記載したアプローチや[this]で公開されているアプローチがより良いと思いますか(https://stackoverflow.com/questions/8681444/composing-trait-behavior-in-scala-in-an-akka-受信方法?rq = 1) –
これは他のプロジェクトよりも優れています(プロジェクトのメンテナーとして) –