2011-02-10 2 views
2

У меня возникают проблемы с приложением Sinatra, которое я пытаюсь развернуть в Heroku - это мой первый раз с Sinatra и Heroku.Приложение Heroku Sinatra неоднократно терпит крах и не может использовать консоль

У меня есть .gems файл с одной строкой: «Синатра», а также config.ru файл, содержащий следующие строки:

require 'myapplication' 
run Sinatra::Application 

После нажатия на Heroku и навигации к URL я получаю страницу что «Приложение разбито» и следующий текст:

Это приложение временно оффлайн. Если вы являетесь администратором этого приложения, пожалуйста, проверьте свои героины журналы для обратной линии.

Выход из «Heroku бревен» является:

 
2011-02-10T01:33:24-08:00 app[web.1]: from ./myapplication.rb:3 
2011-02-10T01:33:24-08:00 app[web.1]: from /usr/ruby1.8.7/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in gem_original_require' 
2011-02-10T01:33:24-08:00 app[web.1]: from /usr/ruby1.8.7/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:inrequire' 
2011-02-10T01:33:24-08:00 app[web.1]: from config.ru:2 
<-- TEXT SNIPPED --> 
2011-02-10T01:33:24-08:00 app[web.1]: from /home/heroku_rack/heroku.ru:1:in `new' 
2011-02-10T01:33:24-08:00 app[web.1]: from /home/heroku_rack/heroku.ru:1 
2011-02-10T01:33:25-08:00 heroku[web.1]: State changed from starting to crashed 
2011-02-10T01:33:32-08:00 heroku[nginx]: GET/HTTP/1.1 | 75.56.61.69 | 3310 | http | 500

Где третья линия myapplication.rb это «требует„модели“» где «models.rb» существует в том же каталоге, что и " myapplication.rb».

Кроме того, когда я запускаю команду «Heroku консоль», я получаю следующее:

Your application is too busy to open a console session. 
Console sessions require an open dyno to use for execution.

Я пробовал различные варианты, чтобы попытаться получить это, чтобы уйти, но пока не удалось.

Спасибо за любую помощь!

+0

Если SO не поможет, попробуйте: http://groups.google.com/group/heroku/ –

+0

Покажите нам 3-ю строку 'myapplication.rb'. – Nakilon

+0

Nakilon, упоминается в сообщении. Третья строка «требует« моделей », где файл models.rb существует в том же каталоге, что и myapplication.rb. Я думал просто свернуть файл models.rb в файл myapplication.rb для этого примера приложения, но я действительно не думаю, что это решает проблему. – Folken

ответ

0

У меня такая же проблема, так что это не полный ответ, но, возможно, это поможет. Если вы просто использовали heroku logs, вы получите только 20 строк (или, возможно, 50). Ваша трассировка ошибок не выглядит так, как будто она начинается с фактической ошибки, так как она начинается с «из», которая в моем ограниченном опыте указывает, что это не источник. Если вы еще этого не сделали, попробуйте heroku logs -n 200 или более, чтобы получить более длинный след, и найдите «Errno» или «ERROR» и так далее. Это не поможет в проблеме с консолью, но, по крайней мере, это может сказать вам, почему ваше приложение не работает.

0

Если вы работаете на одном из стеков Heroku, который использует версии Ruby 1.9.x (в отличие от старых версий 1.8.x) Ruby, помните о новой директиве «require_relative» с номером 1.9, которую вы должны использовать для ссылки на файлы в путях относительно вашего текущего файла.

Это споткнулся меня, потому что я был на месте разработки с 1.8.x

Если вы хотите, чтобы работать как для 1.8.x и 1.9.x, вы могли бы сделать что-то вроде:

require "#{File.dirname(__FILE__)}/another_referenced_rb_file_in_same_directory" 
Смежные вопросы