Знаете ли вы хороший способ в Akka/ Scala для добавления/удаления маршрутов к маршрутизатору Broadcaster?
Я смотрел Resizer - но не отвечал моим потребностям (я не могу понять, как явным образом попросить resizer изменить размер (добавить маршруты), и, чтобы удалить, кажется, вам нужно отправить Poison Pill актеру, который затем удаляется).
До сих пор у меня есть маршрутизатор со списком ActorRef, и я отправляю сообщения AddRoutee и RemoveRoutee....
Мое деловое дело. У меня есть актер, получающий данные из сети (через прокси), и ему нужно отправлять эти данные независимым субъектам для параллельной обработки. Благодаря графическому характеру получателей (DAG), график может развиваться во время выполнения, изменения вершин/ребер, следовательно, необходимо добавлять и удалять маршруты
Для этого должен быть более чистый способ.
Спасибо за указатели.
Пример кода, который я бы хотел обработать Akka:
class MDActor extends Actor {
@volatile var routees = Set[ActorRef]()
def receive = {
case ar: AddRoutee => routees = routees + ar.actorRef
case rr: RemoveRoutee => routees = routees - rr.actorRef
case msg => routees.foreach(r => r forward msg)
}
}