我是红宝石编程的新手。根据项目规范,我必须在后台线程中执行Sinatra应用程序,以便在执行Sinatra应用程序后,用户可以立即接收命令行。可以通过如下所示的过程来实现
require 'sinatra/base'
class Server < Sinatra::Base
configure do
set :port, 3000
set :bind, '127.0.0.1'
set :serve, 'thin'
end
get '/' do
"<h1> Hello World! </h1>"
end
end
Process.daemon
Server.run!
我不能在我的项目中使用流程守护程序或流程表单,因为它会将流程与原始正在运行的流程隔离开来,而且分叉流程与原始正在运行的流程之间的通信是不可行的。现在,剩下的唯一选择是线程。那么可以通过使用线程执行相同的操作吗?
require 'sinatra/base'
class MyApp < Sinatra::Base
configure do
set :port, 3000
set :bind, '127.0.0.1'
set :serve, 'thin'
end
get '/' do
"<h1>Hello World</h1>"
end
end
Thread.new{
MyApp.run!
}.join