运行 Thread 中的 Sinatra 应用程序无法运行
Running Sinatra app inside Thread doesn't work
我正在尝试 运行 新线程中的 Sinatra 应用程序,以便在我的脚本中也 运行 一些其他东西,但是当我这样做时:
require 'sinatra/base'
class App < Sinatra::Base
...some routes...
end
Thread.new do
App.run!
end
没有任何反应,Sinatra 服务器未启动。为了实现这一目标,我还缺少什么吗?
最后我 运行 线程中的另一个 ruby 进程但是来自 Sinatra 应用程序,它工作得很好。
class App < Sinatra::Base
threads = []
threads <<
Thread.new do
Some::Other::Thing
rescue StandardError => e
$stderr << e.message
$stderr << e.backtrace.join("\n")
end
trap('INT') do
puts 'trapping'
threads.each do |t|
puts 'killing'
Thread.kill t
end
end
run!
end
并且我在 Sinatra 应用程序退出时添加了一个控件也杀死了打开的线程。
我正在尝试 运行 新线程中的 Sinatra 应用程序,以便在我的脚本中也 运行 一些其他东西,但是当我这样做时:
require 'sinatra/base'
class App < Sinatra::Base
...some routes...
end
Thread.new do
App.run!
end
没有任何反应,Sinatra 服务器未启动。为了实现这一目标,我还缺少什么吗?
最后我 运行 线程中的另一个 ruby 进程但是来自 Sinatra 应用程序,它工作得很好。
class App < Sinatra::Base
threads = []
threads <<
Thread.new do
Some::Other::Thing
rescue StandardError => e
$stderr << e.message
$stderr << e.backtrace.join("\n")
end
trap('INT') do
puts 'trapping'
threads.each do |t|
puts 'killing'
Thread.kill t
end
end
run!
end
并且我在 Sinatra 应用程序退出时添加了一个控件也杀死了打开的线程。