问题标签 [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.

0 投票
1 回答
3411 浏览

python - pykka——演员很慢?

我目前正在尝试使用 Actor-concurreny(在 Python 上),因为我想了解更多相关信息。因此我选择pykka了 ,但是当我测试它时,它的速度是正常功能的一半以上。

该守则只是看它是否有效;它并不意味着优雅。:)

也许我做错了什么?

这运行得不是那么快:

现在是虚拟的“正常”功能:

给出这个结果:

0 投票
1 回答
224 浏览

python - Pykka:获取 Actor 的基类

我使用pykka python 库。我想创建一个演员,然后测试创建的演员是否属于正确的类。

这里actor.__class__pykka.actor.ActorRef。如何检查它是否指MyActor类?我需要它用于单元测试套件。

0 投票
1 回答
110 浏览

python - 如何让 Pykka 直接登录到控制台?

Pykka 记录到一个名为pykka. 我希望将所有异常、调试消息打印到控制台,尤其是在运行用 Mamba 编写的 Pykka 启动和停止actors 的测试时。

我该怎么做呢?

0 投票
2 回答
4160 浏览

python - 使用 Akka Actor 调用或传递消息给 Python 代码

我有一些用 Python 编写的分析代码。目前我正在使用 Storm 来处理流。因为 Storm 允许使用消息序列化调用 python 代码,所以我在我的 Storm bolts 中从 Java/Scala 调用 Python 代码。

我发现Pykka是演员模型的 Python 实现。我想知道是否有办法从 Akka 演员调用 Python 代码?例如,是否可以将消息从 Akka 演员传递给 Pykka 演员?

0 投票
0 回答
548 浏览

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 欢迎回答“你疯了”!)

0 投票
1 回答
436 浏览

python - Pykka:如何在参与者停止时取消参与者的待处理消息队列

我玩过Pykka演员库,我想出了以下真棒愚蠢的例子:

我得到了预期的结果: 10要求立即打印的行和另外 10 行,每行在 1 秒的时间段内打印:

在所有请求都由参与者处理之后,True作为操作的结果打印出来stop

我想知道是否有可能停止演员,从而取消接收和处理 reaming 消息。

我已经检查了库文档,但我能找到的只是blockstop 参数,这意味着完全不同的事情:当设置为它时,False它使调用成为异步的,但它关于消息队列的行为是相同的:

停止(块=真,超时=无)

向演员发送消息,要求其停止。

如果 actor 在调用时已停止或正在停止,则返回 True。如果演员已经死了,则为假。如果 block 为 False,则返回包装结果的 future。

在要求actor停止之前发送给actor的消息将在它停止之前正常处理。

在 Actor 被要求停止后发送给 Actor 的消息将在其停止后以 pykka.ActorDeadError 进行回复。

演员可能不会重新启动。

阻塞和超时与 ask() 一样。

返回:pykka.Future,如果阻塞则返回布尔值

0 投票
1 回答
747 浏览

python - 如何向 Pykka 演员发送 RabbitMQ 消息?

2015 年 8 月更新:对于想要使用消息传递的人,我目前推荐 zeromq。可以作为 pykka 的补充或完全替代使用。

如何收听 RabbitMQ 队列中的消息,然后将它们转发给 Pykka 中的演员?

目前,当我尝试这样做时,我会出现奇怪的行为并且系统会停止。

以下是我如何实现我的演员:

这是我在ApplicationService类中应该检查队列中是否有新消息的方法:

似乎start_consuming无限期地阻塞。有没有办法我可以自己定期“轮询”队列?

0 投票
0 回答
843 浏览

java - 如何在 Java-Akka 和 Pykka 之间询问/分辨?

我有一个Akka Actor的 Java 实现,如下所示:

我需要python scriptonReceive方法中调用一些。我希望 python 代码再次成为演员。在这种情况下,它将使用Pykka.

如果是这样,我将如何告诉/询问这个 Java 演员和 Pykka 演员?

0 投票
1 回答
156 浏览

python - pika 的 SelectConnection 在 pykka 中使用时创建通道花费 5 秒

我使用 pika 与 rabbitmq 通信。我消耗一个队列,当收到消息时,我启动一个 pykka 的 actor 来运行我的逻辑,有时我的逻辑可能使用 pika 连接来发布消息。但我发现它会花费 5 秒在actor中创建一个频道。代码如下:

这是控制台:

为什么 pika 在 pykka 中使用时创建频道总是需要 5 秒?请帮我解决这个问题

0 投票
1 回答
98 浏览

python - Pykka 对 @property 设置器的行为

我在玩 pykka 的演员模型,发现了一些有趣的行为。这是一个演示

  1. 启动一个演员
  2. 获取它的代理
  3. 设置其@properties 之一

这是代码:

输出如下所示:

我在这里有几个问题。

  1. 为什么 gettersupportThread.myVal()在被调用时会在主线程的上下文中.proxy()被调用?
  2. 为什么这些行会supportProxy.myVal = <a new value>导致主线程等待actor完成?

这对我来说似乎是一个错误:我认为只有.get()在 ThreadingFuture 上调用代理时才应该阻止执行。或者这是故意的?