问题标签 [celluloid]

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 回答
236 浏览

ruby - 如何使用赛璐珞使我的插件的执行并行化?

我的问题应该可以帮助我走上正确的道路。

我正在使用并发框架开发一个 ruby​​ 应用程序celluloid。这里的样子:

活动

我有一些插件。我想同时运行它们并等到最后一个完成。我有一个抽象类,称为PluginFrame,它被所有插件继承,并且还提供了一个run方法。

  1. 我的想法是制作一个SupervisionGroup,但这是正确的想法吗?
  2. 如何运行 aSupervisionGroup并等待所有组成员完成?
  3. 创建一个单独的PluginPool类来管理插件池是个好主意吗?
  4. 限制大小对我来说也很有趣pool,所以只有两个或三个插件同时运行。我怎样才能做到这一点?
0 投票
1 回答
100 浏览

ruby - 支持旧红宝石上的新宝石(此处:赛璐珞)

是否有可能通过使用backports或类似的东西来安装和使用需要比已安装的 ruby​​ 更高版本的 gem?

我被困在 1.8 上,并且在与 rspec 相关的赛璐珞宝石方面遇到了麻烦。我认为也许 backports 将使我能够使用它,因为大多数/所有 ruby​​ 1.9.2+ 功能都可用。

0 投票
2 回答
1516 浏览

ruby-on-rails - 如何使用 Rails 作为 DDP 服务器和 Meteor.js 客户端

我们有一个仅执行 HTTP API 的 Rails 应用程序。在客户端,目前使用的是 Ember.js。Ember 并没有给我们留下太多印象,并且非常喜欢 Meteor.js 采用的方法。因此,我们希望将客户端与 Meteor.js 交换,并通过使用数据分发协议 (DDP) 的 websocket 与 Rails 服务器进行通信,这样我们就可以继续使用 Rails 中的模型、邮件程序和控制器。实现 DDP 的服务器端应该很容易。

但是,我们不确定如何让 Rails 与 websocket 对话。我们找到了 Reel,它似乎可以很容易地在独立环境中接受 websocket 请求。Reel 看起来很棒,因为无论如何我们都希望在赛璐珞堆栈之上实现 DDP。但是在 Rails 环境中运行 Reel 呢?我们需要“rails runner”吗?我们希望继续使用现有的控制器来分派传入的请求(例如,添加/更改/删除资源)。如果没有通过 Rack 的请求,这是否可能?

任何输入表示赞赏。

0 投票
0 回答
134 浏览

ruby - 在 JRuby 中实现赛璐珞基准的困难

我在使用的实现赛璐珞演员的库中看到了一些并发问题。出于好奇,我用几个不同的解释器在赛璐珞中运行了基准测试脚本。

红宝石 1.9.3

红宝石 2.1.1

JRuby 1.7.11 使用 JIT

使用 AOT 的 JRuby 1.7.11

如果我没看错的话,1.9 和 2.1 解释器比在 JRuby 中运行时产生更多的演员。我本来预计 JRuby 会产生更多的演员并且比任何一个 C 解释器运行得更快——但事实似乎并非如此。

我运行基准测试的方式是否缺少某些东西,或者赛璐珞在启动大量演员方面是否存在一些困难?

编辑我最初使用错误的设置来编译 AOT。现在,AOT 的数字似乎更低——尽管除了编译之外我没有指定任何其他选项。

0 投票
1 回答
332 浏览

ruby - 如何终止 SupervisionGroup?

我在赛璐珞中实现了一个简单的程序,理想情况下它将并行运行几个演员,每个演员都会计算一些东西,然后将其结果发送回主要演员,其工作只是汇总结果。

这个 FAQ之后,我介绍了一个SupervisionGroup,像这样:

EvalActor在他们完成后终止 s,AggregatorActor当所有工作人员都完成后我也终止。

但是,监督线程保持活动状态并使主线程保持活动状态。程序永远不会终止。

如果我发送.run!到该组,那么主线程会在它之后立即终止,并且没有任何作用。

终止后,我可以做些什么来终止组(或者,用组术语,finalize我想)AggregatorActor

0 投票
0 回答
176 浏览

ruby - 如何使用赛璐珞演员每 n 秒调用一次块?

我正在尝试创建一个可以接受 &block 作为参数并每 n 秒执行一次的赛璐珞演员。但是,当我callevery循环中阻塞时,它似乎从来没有做任何事情?

以这个示例类为例:

如果我尝试以下操作:

然后我得到这个令人困惑的输出:

您可以看到,当我execute_block第一次从every块外调用时,它工作正常,并且您可以看到everyTimer 工作正常……但是似乎并不是每个人都调用了该块?

任何人都能够阐明我做错了什么?

更新:我注意到如果我移动puts "tock" 下面@block.call它根本不会得到输出......?

0 投票
1 回答
855 浏览

ruby-on-rails - 确保只有一项工作在轨道 SuckerPunch/赛璐珞上运行

我有一个简单的 SuckerPunch 工作,我正在努力让它在任何给定时间只运行一个工作。努力解决它尝试使用赛璐珞和 Ruby 并发

我有的

0 投票
0 回答
853 浏览

ruby - 赛璐珞任务被终止

在使用 Guard 时,bundle exec guard在 cygwin 下运行时出现以下错误。除了这个问题之外,我似乎找不到太多关于这个错误的信息:

堆栈级别太深 (SystemStackError) · 问题 #172 · 守卫/监听 · GitHub

有人知道原因吗?或者Guard是否在cygwin下工作?

我的保护文件:

任何帮助表示赞赏!

0 投票
2 回答
483 浏览

ruby - 如何停止赛璐珞中的“终止任务”消息?

我有一个从 url 读取并检索一些数据的工作人员。所以我使用池来实现 10 个并发工作者的并发:

将上面的代码放在一个名为 some_name.rb 的文件中,运行它,你会得到:

D, [2014-05-09T10:15:06.061071 #6588] DEBUG -- : 终止 15 个演员... W, [2014-05-09T10:15:06.063755 #6588] WARN -- : 终止任务: type=:终结器,元={:方法名称=>:关闭},状态=:调用等待

我的问题是如何暂停这些消息?包装在开始..救援没有帮助。而且,为什么会出现警告,代码有什么问题吗?

谢谢!

0 投票
2 回答
151 浏览

ruby - Ruby 中的速记,Artoo.io

我正在寻找有关artoo.io机器人顶部发生了什么的解释。此示例顶部有一个使用键盘驱动程序的声明:

似乎显示了一些速记/替代语法,我很想解释一下这个速记。我了解替代哈希语法::adapter => :keyboard.

上面最后两行代码发生了什么?是什么connection?它是内部artoo正在初始化的类吗?为什么没有new?从哪里来:keyboard?如果有更明确地表示关系的替代语法,你能证明这一点吗?