问题标签 [actorsystem]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
scala - akka:未收到终止回调
我有一个actorsystem,我在其中注册了一些关于actorsystem终止的代码。代码如下 -
我注意到的奇怪行为是我的回调。当我正常运行应用程序时,我永远不会收到注册代码的回调。
但是,当我在调试模式下运行并在terminate()方法中等待几秒钟然后该行被打印出来.. 我不确定为什么这几秒钟的等待是确保在正常运行时触发所有注册的回调模式没有发生..有人知道吗?
PS:我知道 OOM 是致命的,但我只是对手头的问题感到好奇,OOM 只是一种情况。
当我在最后进行线程转储时,我看到始终存在以下两个线程 -
当参与者系统终止时,调度程序应该已经完成..不确定为什么它处于定时等待状态..
scala - 是否有编写隐藏其参与者系统实现的库的模式?
我见过的所有 Actor 系统实现(主要使用 Akka)都假定一个 Web 应用程序,这意味着一个 HTTP 接口可以很自然地由异步 Actor 系统提供服务。
但是,如果我正在编写一个桌面应用程序,或者一个库以用作独立于平台的应用程序的组件,该怎么办?
我希望客户端子例程能够调用val childObj = parentObject.createChild( initParam )
,而不必知道我允许的消息类型或一般的参与者系统。例如 Not parentObject ! CreateChild( initParam )
,然后处理在另一条消息中收到的响应。
我知道我可以将异步响应隐藏在 Futures 后面,但是还有其他已知的同步系统将计算移交给隐藏的参与者系统的模式吗?
(我意识到这将导致对库的阻塞调用。)
scala - Akka Http singleRequest 流在多个请求后挂起
我正在尝试使用 akka-https 一次请求多个链接Http().singleRequest
。然而,在我下面的演示代码中,foldLeft
只有四次循环,应用程序永远不会到达println
语句或终止。
我使用默认的 akka 配置,但我认为它Http().singleRequest
正在消耗我的线程而不是释放它们。如果我将链接列表更改为仅包含 4 个链接,应用程序将终止并且我可以看到println
. 但是,五和应用程序将在第五次循环期间挂起。
有没有人见过这个或者我的 impl 有问题。在这个特定用例中的 ActorSystem 。
multithreading - 如何捕获对演员的 Dispatcher.Invoke 调用?
我有一个带有 Akka.NET Actor 系统的 Windows 服务。在一个参与者中,我使用了一个外部 .NET 组件(HAL | Facade Pattern),该组件使用基于事件的设计来跨网络侦听设备,我在参与者上创建组件的实例并注册组件所需的事件。我使用 Ninject 依赖注入来获取组件的实例。我怎样才能得到这个组件的回调?我的意思是我需要在我的演员中接收这个组件的事件。
一种选择是在actor中创建一个额外的线程来监听这些事件并将其与常规消息(Tell)一起发送给actor,但我不知道是否是最好的方式或是否存在另一种方式。
scala - 连接到通配符 ip 0.0.0.0 在容器中有效,但在主机上无效
我的 akka 项目有一个奇怪的行为。总结一下:我有两个 Actorsystems 在我的主机系统上运行,并且想要从一个连接到另一个以发送消息。现在的问题是,当我在客户端上使用以下 akka 配置时:
以及我的服务器actorsystem上的以下内容:
我无法使用actorselection 连接到我的服务器actorsystem,如下所示:
我希望它可以使用通配符 IP 地址,因为这意味着它试图连接到主机系统拥有的每个 IPv4。我收到以下错误:
另一方面,如果我将服务器配置上的 127.0.0.1 更改为 0.0.0.0 当我在 docker 容器中运行它并使用客户端上的演员选择中的 0.0.0.0 地址连接到它时,它工作得很好,这正在主机上运行。所以在这里它似乎可以绑定和连接到通配符 IP。
有人对这种行为有解释吗?
akka - Akka 2.6 如何在 Akka Typed 中阅读“死信”?
我已阅读此文档https://doc.akka.io/docs/akka/current/general/message-delivery-reliability.html#dead-letters,其中说:
演员可以在事件流上订阅 akka.actor.DeadLetter 类,请参阅事件流了解如何做到这一点。
在 Event Stream 文档中:https ://doc.akka.io/docs/akka/current/event-bus.html#event-stream ,示例代码似乎是经典的 Akka,包akka.actor.ActorSystem
不是akka.actor.typed.ActorSystem
:
但是在 Akka Typed 中,没有subscribe()
在akka.actor.typed.ActorSystem.eventStream()
.
c# - C# Akka 多线程创建actor
我创建了singleton
包装器ActorSystem
当我从同步代码中使用它时,一切都很好!但是当Actor
's 是并行创建Task
的
项目在包装器的 ctor 之后停止
并且不能进一步工作。
有趣的是,如果在循环中我们限制不超过 20 个,但不超过 8 个,那么随着一些延迟,一切都会起作用。
有人可以告诉我我做错了什么以及如何解决它。
scala - Scala - Supervisor 和 Try-catch 错误处理策略之间的区别
有人可以解释 Scala 中 ActorSystem 中“主管”和“try-catch”错误处理策略之间的区别吗?
scala - akka ActorSystem 进程如何从actor接收
如何让一个进程使用 ActorOf 创建 Actor 并允许 Actor ping 父进程。我的目的是允许演员向其父进程(ActorSystem 主线程)发送信号以调用 system.terminate。但不知道如何做到这一点。这是 snipit,但相反,我不想从 main 调用 terminate,而是从 actor 获得一个信号来调用 terminate。这是可行的吗?
akka - 在子模块的测试之间共享actorsystem的最佳实践是什么?
我有一个 REST API 应用程序,其中包含几个带有单元测试的子模块,并且我需要在其中的一些子模块中使用 actor 系统。我可以为所有子模块测试共享一个参与者系统吗?这种情况下的最佳做法是什么?