问题标签 [pykka]
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.
python - pykka——演员很慢?
我目前正在尝试使用 Actor-concurreny(在 Python 上),因为我想了解更多相关信息。因此我选择pykka
了 ,但是当我测试它时,它的速度是正常功能的一半以上。
该守则只是看它是否有效;它并不意味着优雅。:)
也许我做错了什么?
这运行得不是那么快:
现在是虚拟的“正常”功能:
给出这个结果:
python - Pykka:获取 Actor 的基类
我使用pykka python 库。我想创建一个演员,然后测试创建的演员是否属于正确的类。
这里actor.__class__
是pykka.actor.ActorRef
。如何检查它是否指MyActor
类?我需要它用于单元测试套件。
python - 如何让 Pykka 直接登录到控制台?
Pykka 记录到一个名为pykka
. 我希望将所有异常、调试消息打印到控制台,尤其是在运行用 Mamba 编写的 Pykka 启动和停止actors 的测试时。
我该怎么做呢?
python - 使用 Akka Actor 调用或传递消息给 Python 代码
我有一些用 Python 编写的分析代码。目前我正在使用 Storm 来处理流。因为 Storm 允许使用消息序列化调用 python 代码,所以我在我的 Storm bolts 中从 Java/Scala 调用 Python 代码。
我发现Pykka是演员模型的 Python 实现。我想知道是否有办法从 Akka 演员调用 Python 代码?例如,是否可以将消息从 Akka 演员传递给 Pykka 演员?
python - 带有 Pykka 和 PyQt 的基于 actor 的 GUI
背景:
这确实是一个架构问题。
我希望将当前用 LabView 编写的应用程序移植到 Python。它是一个硬件控制和测量应用程序,它基本上编排了一堆异构硬件来运行测试。
我正在考虑基于 Pykka 的 Python 应用程序,因为 Actor 抽象似乎特别适合编排一堆并行硬件任务(LabView 应用程序使用 LV Actor 框架)。
该应用程序需要一个 GUI——PyQt 和 PyQtGraph 在这里非常有前途。
问题
Pykka 和 PyQt 是围绕事件循环构建的,对于线程和线程间通信有不同的想法。我不确定如何构建代码以让 Pykka 演员使用 PyQt 显示界面。我已经修改了 Pykka 事件循环以调用 PyQt 的 processEvents(),将 pykka.Actor 子类化为使用 QProcess 实现,并让 Pykka 演员持有对独立线程的引用。我一直无法得出令人满意的结果,这是因为我对这两个库都有些陌生。
如何构建一个显示和管理 PyQt GUI 的 Pykka actor?
(ps 欢迎回答“你疯了”!)
python - Pykka:如何在参与者停止时取消参与者的待处理消息队列
我玩过Pykka演员库,我想出了以下真棒愚蠢的例子:
我得到了预期的结果: 10要求立即打印的行和另外 10 行,每行在 1 秒的时间段内打印:
在所有请求都由参与者处理之后,True
作为操作的结果打印出来stop
。
我想知道是否有可能停止演员,从而取消接收和处理 reaming 消息。
我已经检查了库文档,但我能找到的只是block
stop 参数,这意味着完全不同的事情:当设置为它时,False
它使调用成为异步的,但它关于消息队列的行为是相同的:
停止(块=真,超时=无)
向演员发送消息,要求其停止。
如果 actor 在调用时已停止或正在停止,则返回 True。如果演员已经死了,则为假。如果 block 为 False,则返回包装结果的 future。
在要求actor停止之前发送给actor的消息将在它停止之前正常处理。
在 Actor 被要求停止后发送给 Actor 的消息将在其停止后以 pykka.ActorDeadError 进行回复。
演员可能不会重新启动。
阻塞和超时与 ask() 一样。
返回:pykka.Future,如果阻塞则返回布尔值
python - 如何向 Pykka 演员发送 RabbitMQ 消息?
2015 年 8 月更新:对于想要使用消息传递的人,我目前推荐 zeromq。可以作为 pykka 的补充或完全替代使用。
如何收听 RabbitMQ 队列中的消息,然后将它们转发给 Pykka 中的演员?
目前,当我尝试这样做时,我会出现奇怪的行为并且系统会停止。
以下是我如何实现我的演员:
这是我在ApplicationService
类中应该检查队列中是否有新消息的方法:
似乎start_consuming
无限期地阻塞。有没有办法我可以自己定期“轮询”队列?
java - 如何在 Java-Akka 和 Pykka 之间询问/分辨?
我有一个Akka Actor的 Java 实现,如下所示:
我需要python script
在onReceive
方法中调用一些。我希望 python 代码再次成为演员。在这种情况下,它将使用Pykka.
如果是这样,我将如何告诉/询问这个 Java 演员和 Pykka 演员?
python - pika 的 SelectConnection 在 pykka 中使用时创建通道花费 5 秒
我使用 pika 与 rabbitmq 通信。我消耗一个队列,当收到消息时,我启动一个 pykka 的 actor 来运行我的逻辑,有时我的逻辑可能使用 pika 连接来发布消息。但我发现它会花费 5 秒在actor中创建一个频道。代码如下:
这是控制台:
为什么 pika 在 pykka 中使用时创建频道总是需要 5 秒?请帮我解决这个问题
python - Pykka 对 @property 设置器的行为
我在玩 pykka 的演员模型,发现了一些有趣的行为。这是一个演示
- 启动一个演员
- 获取它的代理
- 设置其@properties 之一
这是代码:
输出如下所示:
我在这里有几个问题。
- 为什么 getter
supportThread.myVal()
在被调用时会在主线程的上下文中.proxy()
被调用? - 为什么这些行会
supportProxy.myVal = <a new value>
导致主线程等待actor完成?
这对我来说似乎是一个错误:我认为只有.get()
在 ThreadingFuture 上调用代理时才应该阻止执行。或者这是故意的?