Rails - Puma随机无法启动工作人员

时间:2018-04-27 14:13:10

标签: ruby-on-rails ruby heroku puma

从独角兽升级到美洲狮后,我遇到了一个奇怪的错误;​​

有时当工作人员启动时,他们会从糟糕的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

(在heroku上)

有人有想法吗?

编辑:

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

Gemfilegem 'puma'

Gemfile.lockpuma (3.11.4)

1 个答案:

答案 0 :(得分:1)

在此处将答案发布给尚未发现答案的人。

heroku config:set "BUNDLE_DISABLE_EXEC_LOAD"="true"

查看此线程:github puma issue