使用sinatra-synchrony在jruby上运行sinatra时出现NoMethodError

时间:2013-10-14 18:46:18

标签: sinatra jruby trinidad-gem

我正在尝试将基本的'hello world'jruby sinatra应用程序与sinatra-synchrony集成并继续遇到错误。

app.rb:

require 'sinatra/synchrony'

class App < Sinatra::Base
  register Sinatra::Synchrony

  get '/' do
    'Hello world!'
  end
end

config.ru:

require 'sinatra'
require 'app.rb'

run App

我已经尝试在几个不同的Web服务器上运行它,并获得与线程或内存泄漏有关的各种错误。

1 个答案:

答案 0 :(得分:0)

Ruby的Synchrony库是在事件循环和事件机器中使用Fibers而设计的。对于这种特殊情况,您应该考虑使用MRI和Goliath.io作为您的机架服务器。

然而,Jruby正在实现跨越式发展。我最近几个月一直在使用它,完全避免了事件循环范式。尝试从示例中删除Synchrony库并使用puma.io运行它。

请记住,JVM需要一些“热身”。点击几千次来优化速度。