我在作为akkaactor启动的服务器的字段注入(inject)中遇到空指针异常。附表部分:privateActorRefmyActor=Akka.system().actorOf(newProps(Retreiver.class));@OverridepublicvoidonStart(Applicationapp){log.info("Startingschedular.....!");Akka.system().scheduler().schedule(Duration.create(0,TimeUnit.MILLISECONDS),Duration.create(30,Time
我有以下驱动程序/主类封装了我的Akka程序://Groovypseudo-codeclassFizzBuzz{ActorSystemactorSystemstaticvoidmain(String[]args){FizzBuzzd=newFizzBuzz()d.run()}voidrun(){InitializeinitCmd=newInitialize()MasterActormaster=actorSystem.get(...)//Tellstheentireactorsystemtoinitializeitselfandstartdoingstuff.//ChickenCluc
我正在尝试使用ActorFor获取现有的ActorRef或创建一个新的(如果它不存在)。我有以下代码,但它似乎没有按预期工作。.isTerminated()始终为真。ActorSystemsystem=ActorSystem.create("System");ActorRefsubscriberCandidate=system.actorFor("akka://System/user/"+name);if(subscriberCandidate.isTerminated()){ActorRefsubscriber=system.actorOf(newProps(newUntypedAc
我有一些Akka项目,我有以下场景:我有很多Actor,我希望有一个人类可读的名字,但与此同时,我不想为每个Actor生成唯一的名字我一个人。那么,有没有一种方法可以让Prop或Actor系统为自动生成的名称添加特定字符串前缀?例如,我有一些ActorMaster创建了一些Worker类型的child。我希望每个child的名字都以“worker-”开头,这样我就可以轻松地在日志中跟进。另外,如果可能的话,我想知道是否有其他方法可以更细粒度地命名Actor。提前致谢。编辑:这是我想要的示例目前,据我所知,您有两个选择:1)使用自动生成的名字创建actorActorRefmyActor=
我有未知数量的工作要由已知(当然)数量的Actor执行。Actor完成工作后,初始工作数量可能会增加。也就是说,一个参与者在完成其任务后,可能会添加一个要执行的新作业。我处理这个问题的方法是让每个actor在完成其工作后向master发送一条消息,不仅包含执行结果,还带有一个“标志”,表明该actor现在处于空闲状态。master有一个作业队列和一个空闲actor队列,每当一个actor发送“作业完成消息”时,master就会检查该actor是否还有其他事情要做......等等,直到作业队列是空的,闲置队列已满...那时我关闭了系统。这里没有太多的监督,所以我觉得我做的不对...我没有
我在JAVA中使用Akka2.10。我有一个为我获取Actor引用的方法-或者创建一个(如果之前没有)-但有时当我尝试创建一个时,我收到以下异常:akka.actor.InvalidActorNameException:actorname[]isnotunique!atakka.actor.dungeon.ChildrenContainer$NormalChildrenContainer.reserve(ChildrenContainer.scala:130)atakka.actor.dungeon.Children$class.reserveChild(Children.scala:
假设我有一位主管已关联2位Actor。当我的应用程序关闭时,我想优雅地关闭那些Actor。调用supervisor.shutdown()会停止所有actors还是我仍然需要手动停止我的actors?谢谢 最佳答案 Stoppingasupervisor(调用Supervisor.stop())停止所有链接的(受监督的)actor:finalclassSupervisorActor{...overridedefpostStop():Unit=shutdownLinkedActors然而,当你想优雅地关闭系统中的所有参与者时,还有另一个
我有以下任务,对此我有Java/Executors解决方案运行良好,但我想在Akka中实现相同的功能并寻找最佳实践建议。问题:从多个URL中并行获取/解析数据,阻塞直到所有数据被获取并返回聚合结果。应该重试错误(IOException等)达到一定次数。到目前为止,我的实现非常简单——创建知道应该获取哪些URL的Fetcheractor,它创建一堆Workeractor并向它们发送URL,每条消息一个。完成特定URLWorker后,将消息连同结果发送回Fetcher。Fetcher保持结果状态,Workers无状态。下面是简化的代码。getter:classFetcherextendsU
我正在尝试运行我已经在各种条件下成功运行了几个月的东西。我在运行Java7的Java应用程序中使用akka-actor_2.112.3.4和scala-library2.11.7。就像我说的,相同的代码已经工作了几个月。在最近的情况下,我得到以下信息:java.lang.ClassCastException:interfaceakka.actor.Schedulerisnotassignablefromclassakka.actor.LightArrayRevolverScheduleratakka.actor.ReflectiveDynamicAccess$$anonfun$getC
我目前正在研究Akka(Java版)中的容错和主管策略。在...http://doc.akka.io/docs/akka/2.3.2/java/fault-tolerance.html和http://doc.akka.io/docs/akka/2.3.2/general/supervision.html#supervision几个问题:1)当我们知道期望什么样的异常时,我们应该在Actor中使用try/catch块吗?为什么或者为什么不?如果不是,我们是否应该依靠监督者策略来有效处理child可能抛出的异常?2)默认情况下,如果在父actor中没有显式配置任何super用户,则看起来任