eventmachine

    2热度

    2回答

    我期待为利用Sinatra的内部项目构建一个简单的RESTful通知系统。过去我使用过EventMachine频道来订阅/发布事件,但在我以前的所有情况下,我都是直接使用EventMachine。 是否有人知道是否可以从Sinatra应用程序创建,订阅并发布到EventMachine渠道(以Thin方式运行),或者甚至可以从某些Rack中间件那里发布?

    2热度

    3回答

    的优势,这是我的测试情况下,我发现EM并不比一般的TCP服务器 更快的EM服务器: require 'rubygems' require 'benchmark' require 'eventmachine' class Handler < EventMachine::Connection def receive_data(data) oper

    1热度

    2回答

    我正在构建一个分布式Web爬虫,并试图最大限度地利用每台单机的资源。我通过Iterator在EventMachine中运行解析函数,并使用em-http-request发出异步HTTP请求。现在我有100次迭代同时运行,看起来我无法超越这个级别。如果我增加一些迭代次数,它不会影响抓取速度。然而,我只有10-15%的CPU负载和20-30%的网络负载,所以有足够的空间抓取更快。 我正在使用Ruby

    4热度

    1回答

    更正: 具体来说,我正在寻找从Ruby on Rails的控制器启动和停止EventMachine(EM)。 (我被告知,“薄”会为这项工作做得很好。) 注: 这EM服务器从运行的Ruby on Rails应用程序的Mongrel服务器分开。 (EM服务器正在接受来自Arduino微控制器的连接。) 运行'Thin'作为服务器..我应该能够接受HTTP请求和Arduino的连接。 # Starts

    4热度

    1回答

    寻找使用em-mongo的文本分析器脚本,它从db中加载文本,分析它,标记关键字并更新db。 很想看到em-mongo在行动中的一些例子。只有一个我能找到的是github em-mongo回购。 require 'em-mongo' EM.run do db = EM::Mongo::Connection.new.db('db') collection = db.c

    2热度

    1回答

    我正在使用rails 3,eventmachine和rabbitmq。 当我将消息发布到队列中时,我需要启动多个工作进程。 我知道eventmachine是我的scenerio的解决方案。 某些任务需要比其他任务更长的时间。 使用eventmachine,从大多数代码示例看来,只有单个线程/进程将在任何给定时间运行。 如何在同一时间启动2-4个工作进程?

    1热度

    2回答

    我有一个小问题rabbitmq,我不明白。 我使用: 的Ruby版本1.8.7 AMQP GEM版本0.7.0 RabbitMQ的V2.3.1 红宝石SMPP V0.4.0 我的代码如下像这样: loop do AMQP.start do EventMachine::run do @@tx = EventMachine::connect( con

    5热度

    2回答

    我对eventmachine很新,我一直无法在线找到这个问题的答案。 现在我一直在使用em-mongo和eventmachine,并且我基本上在文档和它们各自的对象之间编写了一个穷人的映射器。我只是想确认,mongoid和mongomapper不能用在事件机器环境中,因为它们是阻塞的,因此首先打败了使用eventmachine的要点,而且我并没有浪费时间写这些映射器。 :P

    1热度

    1回答

    我正在尝试构建一个(私人的,现在的)Web应用程序,它将利用IMAP IDLE连接在他们到达时显示人们的电子邮件。 我有一个很难搞清楚如何共同破解这一点 - 它是如何将我的Heroku的回报率服务器配合在一起。 我写了一个基本的脚本,用于连接到IMAP服务器和怠速时,看起来像这样(简化): imap = Net::IMAP.new server, port, usessl imap.login

    1热度

    1回答

    接收数据有代码,客户端: require 'rubygems' require 'benchmark' require 'socket' i=0 TCPSocket.open "127.0.0.1", 8080 do |s| s.send "#{i}th sending", 0 if line = s.gets puts line end e