问题标签 [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 - 赛璐珞期货不比同步计算快吗?
我正在尝试使用赛璐珞异步处理一些 .csv 数据。我已经读过,使用期货可以让您在主线程终止之前等待一组参与者完成。我看过一些例子来证明这一点。
但是,当我在示例代码中实现它时,事实证明使用期货并不比同步处理快。谁能看到我做错了什么?
2.100000 0.030000 2.130000 ( 2.123381)
2.060000 0.020000 2.080000 ( 2.069357)
【4.6s完成】
ruby-on-rails - Dalli 没有按预期工作的问题?
我有一个简单的 rails 应用程序,我正在尝试从 memcache 框中保存和检索密钥,除非我们开始遇到下面的错误,否则它工作了很长时间,我已经尝试调试它,但现在需要有人帮助
如果有人对此有见解,请告诉我?
ruby - 赛璐珞监督组不起作用
为了理解赛璐珞,我编写了以下脚本。
一切正常,我想避免调用池上的终止。
所以我尝试使用主管,但它提高了我uninitialized constant Celluloid::SupervisionGroup
搜索后我发现这个(在弃用的文件夹中):(https://github.com/celluloid/celluloid-supervision/blob/master/spec/celluloid/deprecate/supervision/supervision_group_spec.rb)
我想让工作像这样:
如何使用新系统让工作成为未来、主管和池?
ruby-on-rails - 如何使用赛璐珞和 ActiveRecord
我正在使用赛璐珞在后台执行一些工作,一些工作正在使用数据库,为此我在单元格(演员)中使用以下代码:
在某些情况下,我有一些服务正在排队数据库,但其中包含一些其他逻辑。我可以将它们发送到...with_connection
或者我需要将电话包裹在里面吗?有没有更好的方法来做这一切?
ruby - 赛璐珞的非阻塞子进程
在不阻塞actor的情况下生成子进程的最佳方法是什么?
我的目标是运行多个命令,完成后,获取输出和退出代码。我试过这个,但显然, popen 调用被阻塞:
输出是:
但我希望每个“启动子进程”之间有五个“勾号”......
谢谢 !
ruby - 赛璐珞代码测试方法
我花了一些时间在谷歌上搜索主题,但是我失败了。有人可以分享以下任何内容吗?
- 任何异步事物的示例* 带有编写的测试代码
Celluloid
- 关于在 Ruby 中测试异步内容的文章甚至是小文章
* 对不起,我知道any async thing
听起来很奇怪,但我不知道怎么称呼它:-)
ruby - 了解赛璐珞并发
以下是我的赛璐珞代码。
client1.rb
2 位客户之一。(我将其命名为客户端 1)client2.rb
2 个客户中的第 2 个。(命名为客户端 2)
笔记:
上述 2 个客户端之间的唯一区别是传递给服务器的文本。即('client-1'
和'client-2'
分别)
在针对以下 2 个服务器(一次一个)测试这 2 个客户端(通过并排运行它们)时。我发现很奇怪的结果。
server1.rb
(取自赛璐珞-zmq 的README.md 的基本示例)将其用作上述 2 个客户端的示例服务器会导致任务的并行执行。
输出
笔记:
当client1.rb请求处于睡眠状态时,client2.rb消息被处理。(并行标记)
-
将其用作上述 2 个客户端的示例服务器并没有导致任务的并行执行。
输出
笔记:
客户端2 被要求等待 60 秒,因为客户端 1正在睡眠(60 秒睡眠)
我多次运行上述测试都导致相同的行为。
谁能从上述测试的结果中解释一下。
问题:为什么赛璐珞要等待 60 秒才能处理其他请求,即在 server2.rb 案例中注意到的那样。?
红宝石版本
ruby -v
ruby 2.1.2p95 (2014-05-08 revision 45877) [x86_64-darwin13.0]
ruby - 了解赛璐珞池
我想我对赛璐珞池的理解有点被打破了。我将尝试在下面解释,但在此之前快速说明。
注意:我们的系统是针对fast client
通过 ZeroMQ 传递的消息运行的。
使用以下香草赛璐珞应用程序
我们的系统在一段时间后导致失败,原因 'Can't spawn more thread'
(或类似的东西)
所以我们打算使用赛璐珞池(避免上述问题),这样我们就可以限制产生的线程数
我对赛璐珞池的理解是赛璐珞池为你维护了一个演员池,这样你就可以并行分配你的任务。
因此,我决定对其进行测试,但根据我的测试用例,它似乎是串行的(即事情永远不会分发或并行发生。)
复制此示例。
如果,sender-2.rb
在sender-1.rb
使用由20
_ _the_client.rb
sender-1.rb
它在 ruby-2.2.2 和 jRuby-9.0.5.0 下的行为相同。池以这种方式行事的可能原因是什么?
ruby - 访问通过赛璐珞中的池初始化的演员的邮箱
我的应用中有 2 个演员。服务和 PushSocket。我正在使用邮箱在两个演员 Service 和 PushSocket 之间进行通信。当我在 PushSocket 上创建单个实例并将消息添加到它的邮箱时,它运行良好。
但是当尝试与池相同时,它不会按预期工作。我在推送套接字中没有收到任何消息。
为了让这个工作,我使用了推送套接字的实例方法,它给出了正确的结果。当我尝试使用定义了池大小的邮箱时,不确定有什么问题。