jjzjj

celluloid

全部标签

ruby-on-rails - Gem::InstallError: celluloid 需要 Ruby 版本 >= 1.9.2

我正在尝试安装GitLabCI,但出现此错误。Gem::InstallError:celluloidrequiresRubyversion>=1.9.2.Anerroroccurredwhileinstallingcelluloid(0.12.4),andBundlercannotcontinue.Makesurethat`geminstallcelluloid-v'0.12.4'`succeedsbeforebundling.但是,我认为我的ruby是最新的。#ruby--versionruby1.9.3p286(2012-10-12revision37165)[i686-linux

ruby - celluloid-io 或带有蚊子循环的 eventmachine

我正在构建一个小的ruby​​程序来运行与MQTT的连接。服务器并订阅channel。我正在使用mosquittogem这只是libmosquitto的桥梁C库。我创建了一个非常简单的程序实现,可以使用rubymy_prog.rb运行:#DependenciesrequireFile.expand_path(File.join('..','environment'),__FILE__)#MQTTApplicationmodulePulsrclassMQTTattr_reader:host,:port,:alivedefinitialize(host='iot.eclipse.org',

ruby - Sidekiq 现任赛璐珞 Actor

我需要在我的Sidekiqworker中访问当前的赛璐珞Actor,但我看不到这样做的方法。每当我尝试调用:Celluloid::Actor.current我收到一个错误:不在actor范围内我试图通过每次创建一个新Actor来绕过寻找当前Actor:Celluloid::Actor.new(SecureRandom.hex)但出于某种原因,它给我一个错误:attemptedtocalldeadactor。我应该做些什么不同的事情来让当前的actor进入Sidekiqworker?背景信息我正在连接到我的工作人员中的websocket并向它发送消息。Celluloid::WebSock

ruby - 了解赛璐珞并发

以下是我的赛璐珞代码。client1.rb2个客户之一。(我将其命名为客户端1)client2.rb2个客户中的第2个。(命名为客户端2)备注:上述2个客户端之间的唯一区别是传递给服务器的文本。即('client-1'和'client-2'分别)针对以下2个服务器(一次一个)测试这2个客户端(通过并排运行)。我发现非常奇怪的结果。server1.rb(取自celluloid-zmq的README.md的基本示例)将其用作上述2个客户端的示例服务器导致任务的并行执行。输出rubyserver1.rbReceivedat04:59:39PMandmessageisclient-1Going

ruby - celluloid gem 安装出错

最近我将我的Rails版本更新到4.2.3并将ruby​​版本更新到ruby-2.2.3。之后,当我bundle它时会出现以下错误:$bundleFetchinggemmetadatafromhttp://rubygems.org/..........Fetchingversionmetadatafromhttp://rubygems.org/...Fetchingdependencymetadatafromhttp://rubygems.org/..Couldnotfindcelluloid-0.16.1inanyofthesources你能帮帮我吗? 最

ruby - 在 jruby 线程设置中使用 redis

所以redisgem应该是线程安全的,这很好。但我想知道我需要如何设置它。我正在使用jRuby和Celluloid(使用默认纤程)。我现在使用它的方式是我定义了一个全局方法:defredis@_redis||=Redis.new(...)end我将Redis客户端的超时参数设置为30。我认为我不会遇到任何线程安全问题(我确实在生成线程之前对其进行了初始化),但是有时我开始收到Redis::TimeoutError错误,所以我想知道这些线程是否可能永远保持打开连接并最终占用所有可用连接?基本上问题是有时我会得到Redis::TimeoutError。有没有一种方法可以检查某个时刻哪些连接

ruby-on-rails - 在部署到 EC2 之后,sidekiq 现在报告 SocketError : getaddrinfo: Name or service not known

应用程序是Rails4.1.4,Ruby2.1.2。使用sidekiq3.2.6、redis3.1.0、celluloid0.15.2。sidekiq实现是默认的,除了连接到远程redis队列(弹性缓存)。当处理某些事件时,我们使用sidekiq来排队调用外部API。API可通过托管我们应用程序的服务器的curl访问。所有其他功能似乎仍按预期执行。此功能已在当前服务器实现/架构上运行数周。在成功部署(使用Capistrano,通过Jenkins)到弹性负载均衡器后面的EC2实例之后,自动缩放组sidekiq将不再连接(?)到elasticcache。SocketError:getadd

ruby - 我如何使用 Celluloid 并行执行我的插件?

我的问题应该能帮助我走上正确的道路。我正在使用并发框架celluloid开发一个ruby​​应用程序。这是它的样子:我有一些插件。我想同时运行它们并等到最后一个完成。我有一个抽象类,叫做PluginFrame,它被所有的插件继承并且还提供了一个run方法。我的想法是制作一个SupervisionGroup,但这是正确的想法吗?如何运行SupervisionGroup并等待所有组成员完成?创建一个单独的PluginPool类来管理插件池是个好主意吗?限制pool的大小对我来说也很有趣,因此只能同时运行两个或三个插件。我怎样才能做到这一点? 最佳答案