2015-03-19 5 views
1

Я пытаюсь развернуть свое приложение в Heroku с помощью Puma. Это мой первый опыт использования Puma, так как это моя первая попытка применения «качества продукции». Я добавил puma, как описано in the dev center, но после развертывания я столкнулся с ошибкой метода. Вот моя ошибка из журналов: config/puma.rb:5:in _load_from': undefined method preload_app!' for #<Puma::Configuration::DSL:0x007f89e2686140> (NoMethodError)Проблема с развертыванием Puma с Heroku

Я использовал предложенную конфигурацию в моем config\puma.rb:

workers Integer(ENV['WEB_CONCURRENCY'] || 2) 
threads_count = Integer(ENV['MAX_THREADS'] || 5) 
threads threads_count, threads_count 

preload_app! 

rackup  DefaultRackup 
port  ENV['PORT']  || 3000 
environment ENV['RACK_ENV'] || 'development' 

on_worker_boot do 
    # Worker specific setup for Rails 4.1+ 
    # See: https://devcenter.heroku.com/articles/deploying-rails-applications-with-the-puma-web-server#on-worker-boot 
    ActiveRecord::Base.establish_connection 
end 

, как показано в приведенной выше ошибки, кажется, Heroku имеет проблемы с командой preload_app!. Я застрял и не знаю, куда идти отсюда. У меня такое чувство, что я как-то неправильно обработал файл - то есть я просто сделал новый файл в своем редакторе, а не из командной строки.

ответ

0

Это, как мы устанавливаем config/puma.rb на Heroku с использованием Rails 4.1.0

workers Integer(ENV['PUMA_WORKERS'] || 3) 
threads Integer(ENV['MIN_THREADS'] || 1), Integer(ENV['MAX_THREADS'] || 16) 

preload_app! 

rackup  DefaultRackup 
port  ENV['PORT']  || 3000 
environment ENV['RACK_ENV'] || 'development' 

on_worker_boot do 
    # worker specific setup 
    ActiveSupport.on_load(:active_record) do 
    config = ActiveRecord::Base.configurations[Rails.env] || 
      Rails.application.config.database_configuration[Rails.env] 
    config['pool'] = ENV['MAX_THREADS'] || 16 
    ActiveRecord::Base.establish_connection(config) 
    end 
end 

Мы храним рабочих и потоки к минимуму (мы на свободный план).

Когда я перезапустить наш дино, я получаю этот выход в журналах:

2015-03-.. app[web.1]: [3] Puma starting in cluster mode... 
2015-03-... app[web.1]: [3] * Version 2.9.1 (ruby 2.1.5-p273), codename: Team High Five 
2015-03-... app[web.1]: [3] * Min threads: 1, max threads: 3 
2015-03-... app[web.1]: [3] * Environment: production 
2015-03-... app[web.1]: [3] * Process workers: 2 
2015-03-... app[web.1]: [3] * Preloading application 
+0

Я вижу вы использовали '' preload_app, а также, любые идеи по ошибке я получаю!? – PSCampbell

+0

Вероятно, это конфликтует с поэтапным перезапуском, но я не совсем уверен. – Thomas

+0

Я концептуально понимаю, что делает preload_app, но учитывая мое приложение замечательно легкое, следует ли мне отказаться от этой команды? – PSCampbell

Смежные вопросы