草庐IT

tokio_actor

全部标签

java - Actor 回复非 Actor

我刚刚开始使用AKKA,并且有一个关于非参与者代码如何与参与者代码对话的基本问题。非参与者代码如何调用参与者并获得响应?我试过使用Patterns.ask从非Actor调用Actor,但这不起作用,因为没有Actor可以响应的“发送者”。那我应该怎么做呢? 最佳答案 这应该可以正常工作。当您使用ask时,会创建一个轻量级参与者(我相信由PromiseActorRef表示)来表示发送者,以便可以发回响应以完成>Future通过ask创建。一个小例子来说明这一点。首先是测试Actor:classTestActorextendsUntyp

java - 使用 guice 注入(inject)与 actor 抛出空指针

我在作为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

java - Akka:在 actor 系统之外进行通信?

我有以下驱动程序/主类封装了我的Akka程序://Groovypseudo-codeclassFizzBuzz{ActorSystemactorSystemstaticvoidmain(String[]args){FizzBuzzd=newFizzBuzz()d.run()}voidrun(){InitializeinitCmd=newInitialize()MasterActormaster=actorSystem.get(...)//Tellstheentireactorsystemtoinitializeitselfandstartdoingstuff.//ChickenCluc

java - 获取现有或创建新的 akka actor

我正在尝试使用ActorFor获取现有的ActorRef或创建一个新的(如果它不存在)。我有以下代码,但它似乎没有按预期工作。.isTerminated()始终为真。ActorSystemsystem=ActorSystem.create("System");ActorRefsubscriberCandidate=system.actorFor("akka://System/user/"+name);if(subscriberCandidate.isTerminated()){ActorRefsubscriber=system.actorOf(newProps(newUntypedAc

java - 我可以为某些 Actor 的自动名称添加前缀吗?

我有一些Akka项目,我有以下场景:我有很多Actor,我希望有一个人类可读的名字,但与此同时,我不想为每个Actor生成唯一的名字我一个人。那么,有没有一种方法可以让Prop或Actor系统为自动生成的名称添加特定字符串前缀?例如,我有一些ActorMaster创建了一些Worker类型的child。我希望每个child的名字都以“worker-”开头,这样我就可以轻松地在日志中跟进。另外,如果可能的话,我想知道是否有其他方法可以更细粒度地命名Actor。提前致谢。编辑:这是我想要的示例目前,据我所知,您有两个选择:1)使用自动生成的名字创建actorActorRefmyActor=

如何使用Rust Tokio处理文件及其局限性

Rust的Tokio库以其高效处理异步I/O的能力而闻名,使其成为构建高性能应用程序的热门选择。但是,在某些情况下,Tokio可能无法提供显著的优势,例如在处理读取大量文件时,在这个特定的上下文中,与使用普通线程池相比,Tokio可能不是最佳的解决方案。这种限制源于这样一个事实,即操作系统通常缺乏异步文件api,从而削弱了Tokio在文件读取任务中的潜在优势。值得注意的是,Tokio在异步上下文中表现出色,例如网络操作。如果你需要在异步上下文中读取文件,特别是在网络上下文中,Tokio是首选,因为它与异步工作流无缝集成。然而,对于性能和便利性至关重要的同步文件读取任务,坚持使用同步api可能会

java - 如何知道 Actor 是否空闲

我有未知数量的工作要由已知(当然)数量的Actor执行。Actor完成工作后,初始工作数量可能会增加。也就是说,一个参与者在完成其任务后,可能会添加一个要执行的新作业。我处理这个问题的方法是让每个actor在完成其工作后向master发送一条消息,不仅包含执行结果,还带有一个“标志”,表明该actor现在处于空闲状态。master有一个作业队列和一个空闲actor队列,每当一个actor发送“作业完成消息”时,master就会检查该actor是否还有其他事情要做......等等,直到作业队列是空的,闲置队列已满...那时我关闭了系统。这里没有太多的监督,所以我觉得我做的不对...我没有

java - Actor 名字不是唯一的 - AKKA

我在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:

java - 在 AKKA 中,调用 supervisor 的 shutdown 会停止它所监督的所有 actor 吗?

假设我有一位主管已关联2位Actor。当我的应用程序关闭时,我想优雅地关闭那些Actor。调用supervisor.shutdown()会停止所有actors还是我仍然需要手动停止我的actors?谢谢 最佳答案 Stoppingasupervisor(调用Supervisor.stop())停止所有链接的(受监督的)actor:finalclassSupervisorActor{...overridedefpostStop():Unit=shutdownLinkedActors然而,当你想优雅地关闭系统中的所有参与者时,还有另一个

java - 您如何对 libgdx 舞台中的 Actors 进行排序?

我在对LibGdxStage对象中的Actors进行排序时遇到问题。渲染舞台时,图像将按照添加的顺序进行渲染。舞台使用数组来保存Actor。我已经尝试设置每个Actor的ZIndex,但它仍然没有排序。然后我尝试像这样创建一个比较器对象:publicclassActorComparatorimplementsComparator{@Overridepublicintcompare(Actorarg0,Actorarg1){if(arg0.getZIndex()然后当我想进行实际比较时:Collections.sort(Stage.getActors(),newActorComparat