Я пытаюсь настроить свою среду так, чтобы оба rails, EventMachine и async_sinatra играли вместе, и я предполагаю, что у меня что-то не так, потому что я получаю ошибку "uncaught throw: async".
Это то, что у меня есть в моем Gemfile:
source 'http://rubygems.org'
gem 'rails', '3.1.3'
gem 'sinatra'
gem 'async_sinatra'
gem 'execjs'
gem 'therubyracer'
gem 'eventmachine'
gem 'rack-fiber_pool', :require => 'rack/fiber_pool'
gem 'thin'
Это конфиг.ру:
require ::File.expand_path('../config/environment', __FILE__)
use Rack::FiberPool
run Longpoll::Application
Это то, что у меня есть в моем файле rout.rb:
match '/longpoll', :to => LongPoll
и это мой файл long_poll.rb:
class LongPoll < Sinatra::Base
register Sinatra::Async
aget '/longpoll' do
body 'Hello world!'
end
end
Есть идеи, что мне не хватает для этой настройки?
EDIT:
Я понял, что работа без rack-fiber_pool исправляет ситуацию.
Кто-нибудь может подтвердить, могут ли они работать вместе или нет?
Еще один пример, который выдает ту же ошибку basic.ru:
#!/usr/bin/env rackup -Ilib:../lib -s thin
require 'sinatra/async'
require 'rack/fiber_pool'
class AsyncTest < Sinatra::Base
register Sinatra::Async
use Rack::FiberPool
enable :show_exceptions
aget '/' do
body "hello async"
end
end
run AsyncTest.new