私の環境はscala akkaと遊びです!フレームワーク。とにかくアクターシステムの作成を制御する方法や、できる他のアイデアがあるかどうか疑問に思っていました.
私の考えは、ユーザーが購入したときに承認を処理するリモート アクターを作成することです。そこで、ユーザーが投稿したときにアクション メソッドでリモート アクター システムとアクターを作成します。
def payment = Action { implicit request =>
var actorObject: Array[String] = new Array[String](23)
val system = ActorSystem("RemoteSystem", ConfigFactory.load.getConfig("remotecreation")
val worker = system.actorOf(Props[authNetActor.AuthNetActorMain].withRouter(FromConfig()), name = "remoteActor")
...
system.shutdown()
}
application.conf の remotecreation の定義は次のとおりです。
remotecreation { #user defined name for the configuration
include "common"
akka {
actor {
serialize-messages = on
serialize-creators = on
serializers {
proto = "akka.serialization.ProtobufSerializer"
java = "akka.serialization.JavaSerializer"
arr = "models.ArraySerializer"
}
serialization-bindings {
"com.google.protobuf.Message" = proto
"java.lang.String" = java
"java.util.Arrays" = java
"scala.Array" = arr
"akka.actor.ActorRef" = java
}
deployment {
/remoteActor { #Specifically has to be the name of the remote actor
remote = "akka://ActorApplication@172.17.100.232:2552"
router = "round-robin"
nr-of-instances = 1
}
}
}
remote.netty.port = 2554
}
}
私が抱えている問題は、既にアクター システムが存在する IP アドレスでアクター システムを作成しようとしているため、2 回続けて送信するとエラーが発生することです。
私は間違いなくそれを移動する必要があると思いますが、これは幅広いマルチユーザープレイになるため、どこにあるのかわかりません! 何百人ものユーザーがアプリケーションを使用する場合、競合することなくアクター システムの作成をどこに置くことができるかわかりません。
任意の考え、提案、またはヘルプをいただければ幸いです。