私は将来の構成に少し慣れていないので、まだすべての一般的なパターンを把握していません.
先物のリストがありますが、リストを調整できるように、作成時に名前を先物に関連付ける必要があります。
たとえば、このような先物のリストを作成した場合、x を先物の結果に関連付けるにはどうすればよいでしょうか?
val requestsForMaster = shardNames.map { x ⇒
sentinel ? Request("SENTINEL", "get-master-addr-by-name", x)
}
先物をシーケンスにするために、このようなことをします
val mastersConfig = Future.sequence(requestsForMaster)
mastersConfig.onSuccess {
case x: List[Some[List[Some[ByteString]]]] ⇒
self ! x.map {
case Some(List(Some(host: ByteString), Some(port: ByteString))) ⇒
println("Host/port: " + host.utf8String + ":" + port.utf8String)
Shard("name", host.utf8String, port.utf8String.toInt, None)
}
}
しかし、Shard オブジェクトを作成しようとすると、名前 (x) が使用できず、そこに必要です。
そこに名前を付けるためにこれらを構成する方法について何か考えはありますか?
編集:これが私が使用したソリューションです:
val requestsForMaster = shardNames.map { x ⇒
(sentinel ? Request("SENTINEL", "get-master-addr-by-name", x)).map(y ⇒ (x, y))
}
val mastersConfig = Future.sequence(requestsForMaster)
mastersConfig.onSuccess {
case x: (List[(String, Some[List[Some[ByteString]]])]) ⇒
self ! x.map {
case (name, Some(List(Some(host: ByteString), Some(port: ByteString)))) ⇒
println("Name Host:port: " + name + " " + host.utf8String + ":" + port.utf8String)
Shard("name", host.utf8String, port.utf8String.toInt, None)
}
}