Автозагрузка предупреждения ruby ​​gem, может быть причиной ошибки приложения Heroku?

У меня очень простой сайт-прототип Ruby Serve, который отлично работает локально, но не работает на Heroku:

Aug 02 12:35:40 localp app/web.1:  [2013-08-02 11:35:40] INFO  WEBrick 1.3.1 
Aug 02 12:35:40 localp app/web.1:  [2013-08-02 11:35:40] INFO  ruby 1.9.3 (2013-06-27) [x86_64-linux] 
Aug 02 12:35:40 localp app/web.1:  [2013-08-02 11:35:40] INFO  WEBrick::HTTPServer#start: pid=2 port=4000 
Aug 02 12:36:39 localp heroku/web.1:  Error R10 (Boot timeout) -> Web process failed to bind to $PORT within 60 seconds of launch 
Aug 02 12:36:39 localp heroku/web.1:  Stopping process with SIGKILL 
Aug 02 12:36:41 localp heroku/web.1:  Process exited with status 137 
Aug 02 12:36:41 localp heroku/web.1:  State changed from starting to crashed 

Я думаю, что это может быть связано с тем, что гемы не загружаются должным образом, так как это локальное предупреждение, которое я получаю:

[2013-08-02 12:39:22] INFO  WEBrick 1.3.1
[2013-08-02 12:39:22] INFO  ruby 1.9.3 (2012-10-12) [x86_64-darwin12.2.0]
[2013-08-02 12:39:22] INFO  WEBrick::HTTPServer#start: pid=79265 port=4000
WARN: serve autoloading 'slim' in a non thread-safe way; explicit require 'slim' suggested.
WARN: serve autoloading 'slim' in a non thread-safe way; explicit require 'slim' suggested.
WARN: serve autoloading 'slim' in a non thread-safe way; explicit require 'slim' suggested.
WARN: serve autoloading 'slim' in a non thread-safe way; explicit require 'slim' suggested.
WARN: tilt autoloading 'redcarpet' in a non thread-safe way; explicit require 'redcarpet' suggested.
WARN: tilt autoloading 'rdiscount' in a non thread-safe way; explicit require 'rdiscount' suggested.
127.0.0.1 - local [02/Aug/2013 12:40:10] "GET /wireframes/ HTTP/1.1" 200 - 0.2049
127.0.0.1 - local [02/Aug/2013 12:40:10] "GET /styles/style.css HTTP/1.1" 200 765 0.0018
127.0.0.1 - local [02/Aug/2013 12:40:10] "GET /favicon.ico HTTP/1.1" 404 31 0.0026

Я пытался явно требовать драгоценные камни, но я получаю то же сообщение об ошибке. Вот мой Gemfile:

source 'https://rubygems.org'
ruby '1.9.3'
gem 'serve', '1.5.2'

gem 'rack-contrib'
gem 'compass'
gem 'sass-globbing'
gem 'rdiscount', :require => 'rdiscount'
gem 'slim', :require => 'slim'

FWIW, вот мой Procfile:

web: bundle exec rackup config.ru -p $PORT

Я осмотрел все переполнение стека. Есть несколько ответов, но они касаются прекомпиляции ресурсов на Rails. Есть идеи, в чем может быть проблема?

1 ответ

Решение

WEBrick - веб-сервер Ruby, разработанный для разработки и не рекомендуемый для производственного использования. Это также многопоточный.

Попробуйте добавить gem "thin" в ваш Gemfile. Heroku будет использовать Thin в качестве сервера, который не является многопоточным (по умолчанию, хотя он имеет многопоточную опцию), и ваш non thread-safe way вероятно уйдет.

Другие вопросы по тегам