我想知道如何启动一个Ruby Rack应用程序(如Sinatra)并在同一脚本中使用Net :: HTTP或类似名称调用它。我可以做类似的东西...启动并在同一脚本中调用Ruby HTTP服务器
require 'sinatra/base'
require 'net/http'
t = Thread.new do
class App < Sinatra::Base
get '/' do
'Hi!'
end
end
App.run! :host => 'localhost', :port => 1234
end
sleep 2
puts Net::HTTP.start('localhost', 1234) { |http| http.get('/') }.body
t.join
puts 'Bye!'
...但它不觉得最佳睡眠两秒钟,等待瘦开始。我需要的是当服务器启动或有人提出任何其他建议时的某种回调?
[Execute code once Sinatra server running]可能重复(http://stackoverflow.com/questions/2589356/execute-code-once-sinatra-server-is-running) –