使用eventmachine和sinatra,为什么它会一直退出?

时间:2013-08-23 10:27:33

标签: ruby sinatra eventmachine

为什么我在运行这个ruby程序时总是退出? 这是红宝石计划:

require 'rubygems'
require 'eventmachine'
require 'thread'
require 'sinatra'

Thread.new do
    EventMachine.run do
        EM.add_periodic_timer(1) do
            #do some things
        end
    end
end

get '/' do
    'hello'
end

当我运行它时,我得到了这个:

lynn@ubuntu:~/Test$ ruby em1.rb 
== Sinatra/1.4.2 has taken the stage on 4567 for development with backup from Thin
>> Thin web server (v1.5.1 codename Straight Razor)
>> Maximum connections set to 1024
>> Listening on localhost:4567, CTRL+C to stop
lynn@ubuntu:~/Test$ 
lynn@ubuntu:~/Test$ netstat -ant
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN     
tcp        0      0 127.0.1.1:53            0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN     
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN     
tcp       28      0 192.168.241.134:38223   91.189.92.11:443        CLOSE_WAIT 
tcp        1      0 192.168.241.134:42978   91.189.94.25:80         CLOSE_WAIT 
tcp6       0      0 :::22                   :::*                    LISTEN     
tcp6       0      0 ::1:631                 :::*                    LISTEN     
lynn@ubuntu:~/Test$ 

当我运行这个ruby程序时它就退出了,为什么?在这里,我想通过http请求定期做一些事情!我怎么能这样做?

1 个答案:

答案 0 :(得分:0)

只需在thin服务器下运行您的Sinatra应用程序,它将使用Eventmachine触发