问题标签 [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.
ruby - 如何使用赛璐珞使我的插件的执行并行化?
我的问题应该可以帮助我走上正确的道路。
我正在使用并发框架开发一个 ruby 应用程序celluloid
。这里的样子:
我有一些插件。我想同时运行它们并等到最后一个完成。我有一个抽象类,称为PluginFrame
,它被所有插件继承,并且还提供了一个run
方法。
- 我的想法是制作一个
SupervisionGroup
,但这是正确的想法吗? - 如何运行 a
SupervisionGroup
并等待所有组成员完成? - 创建一个单独的
PluginPool
类来管理插件池是个好主意吗? - 限制大小对我来说也很有趣
pool
,所以只有两个或三个插件同时运行。我怎样才能做到这一点?
ruby - 支持旧红宝石上的新宝石(此处:赛璐珞)
是否有可能通过使用backports或类似的东西来安装和使用需要比已安装的 ruby 更高版本的 gem?
我被困在 1.8 上,并且在与 rspec 相关的赛璐珞宝石方面遇到了麻烦。我认为也许 backports 将使我能够使用它,因为大多数/所有 ruby 1.9.2+ 功能都可用。
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 的请求,这是否可能?
任何输入表示赞赏。
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 的数字似乎更低——尽管除了编译之外我没有指定任何其他选项。
ruby - 如何使用赛璐珞演员每 n 秒调用一次块?
我正在尝试创建一个可以接受 &block 作为参数并每 n 秒执行一次的赛璐珞演员。但是,当我call
从every
循环中阻塞时,它似乎从来没有做任何事情?
以这个示例类为例:
如果我尝试以下操作:
然后我得到这个令人困惑的输出:
您可以看到,当我execute_block
第一次从every
块外调用时,它工作正常,并且您可以看到every
Timer 工作正常……但是似乎并不是每个人都调用了该块?
任何人都能够阐明我做错了什么?
更新:我注意到如果我移动puts "tock"
下面的@block.call
它根本不会得到输出......?
ruby-on-rails - 确保只有一项工作在轨道 SuckerPunch/赛璐珞上运行
我有一个简单的 SuckerPunch 工作,我正在努力让它在任何给定时间只运行一个工作。努力解决它尝试使用赛璐珞和 Ruby 并发
我有的
和
ruby - 赛璐珞任务被终止
在使用 Guard 时,bundle exec guard
在 cygwin 下运行时出现以下错误。除了这个问题之外,我似乎找不到太多关于这个错误的信息:
堆栈级别太深 (SystemStackError) · 问题 #172 · 守卫/监听 · GitHub
有人知道原因吗?或者Guard是否在cygwin下工作?
我的保护文件:
任何帮助表示赞赏!
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=:终结器,元={:方法名称=>:关闭},状态=:调用等待
我的问题是如何暂停这些消息?包装在开始..救援没有帮助。而且,为什么会出现警告,代码有什么问题吗?
谢谢!
ruby - Ruby 中的速记,Artoo.io
我正在寻找有关artoo.io机器人顶部发生了什么的解释。此示例顶部有一个使用键盘驱动程序的声明:
似乎显示了一些速记/替代语法,我很想解释一下这个速记。我了解替代哈希语法::adapter => :keyboard
.
上面最后两行代码发生了什么?是什么connection
?它是内部artoo
正在初始化的类吗?为什么没有new
?从哪里来:keyboard
?如果有更明确地表示关系的替代语法,你能证明这一点吗?