Question

why it always quit when i run this ruby program ?
This is the ruby program:

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

when i run it, i got this:

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$ 

it was quit when i run this ruby program, why? here i wanna a thread to periodicaly do some things with the http request! how can i do it ?

Was it helpful?

Solution

Just run your Sinatra app under thin server and it will be fired with Eventmachine

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top