Имам такъв актьор
class TcpClientActor(target: Target) extends Actor with Logger {
override def preStart(): Unit = {
self ! TestConnection
}
override def receive: Receive = {
case TestConnection =>
IO(Tcp) ! Connect(remoteAddress = new InetSocketAddress(target.endpoint, target.port), localAddress = None, options = Nil, timeout = Some(timeout), pullMode = false)
case failed@CommandFailed(_: Connect) =>
info(s"Failure: $target.endpoint:$target.port")
shutdown()
case Connected(_, _) =>
info(s"Success: $target.endpoint:$target.port")
sender() ! Close
shutdown()
}
def shutdown(): Unit = {
context stop self
}
}
Повтарям файл с крайни точки за тестване и създавам един от тези актьори с всеки ред като аргумент на конструктора от тип Target
. Искам да мога да намаля броя на паралелните TCP връзки за стартиране до някакъв зададен брой, има ли вградени механизми, които мога да използвам в Akka, за да гарантирам, че няма да претоварвам системата, като просто незабавно създам TcpClientActor
за всеки ред от въвеждане и стартиране на връзка с гнездо?