Rails - Puma случайно не смогла запустить рабочего - PullRequest
0 голосов
/ 27 апреля 2018

После обновления с единорога до пумы я столкнулся со странной ошибкой;

Иногда, когда рабочие запускаются, они запускаются в плохой версии ruby, что приводит к ошибке. Вроде бы случайно ...

Эта ошибка вызывает 503 в моем приложении, потому что рабочий не запускается должным образом.

это моя ошибка:

app[web.3]: bundler: failed to load command: puma (/app/vendor/bundle/ruby/2.5.0/bin/puma)
app[web.3]: SignalException: SIGTERM

Но я не на ruby ​​2.5.0

Конфигурация системы:

Версия Ruby: 2.5.1

Версия Rails: 5.1.4

Версия Puma: 3.11.4

(по героку)

У кого-нибудь есть идея?

РЕДАКТИРОВАТЬ:

Procfile:

web: bundle exec puma -C config/puma.rb
worker:  bundle exec rake jobs:work
shoryuken_worker:  bundle exec shoryuken -R -C config/shoryuken.yml

puma.rb:

workers Integer(ENV['WEB_CONCURRENCY'] || 4) # WEB_CONCURRENCY = 3
threads_count = Integer(ENV['RAILS_MAX_THREADS'] || 4) # RAILS_MAX_THREADS = 5
threads threads_count, threads_count

preload_app!

rackup      DefaultRackup
port        ENV['PORT']     || 3000
environment ENV['RAILS_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

Gemfile: gem 'puma'

Gemfile.lock: puma (3.11.4)

1 Ответ

0 голосов
/ 09 августа 2018

Размещение ответа здесь для тех, кто еще не понял этого.

heroku config:set "BUNDLE_DISABLE_EXEC_LOAD"="true"

см. Эту тему: выпуск github puma

...