0

为什么当我运行这个 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 请求做一些事情!我该怎么做 ?

4

1 回答 1

0

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

于 2013-08-23T14:25:58.543 回答