Rails - Puma 随机启动工人失败
Rails - Puma randomly failed to start a worker
从unicorn升级到puma后,遇到一个奇怪的错误;
有时,当 worker 启动时,它们会启动错误的 ruby 版本,因此会导致错误。好像是随机的...
这个错误导致我的应用程序出现 503,因为 worker 没有正常启动。
这是我的错误:
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
Gemfile
:
gem 'puma'
Gemfile.lock
:
puma (3.11.4)
在这里为还没有弄明白的人张贴答案。
heroku config:set "BUNDLE_DISABLE_EXEC_LOAD"="true"
查看此线程:github puma issue
从unicorn升级到puma后,遇到一个奇怪的错误;
有时,当 worker 启动时,它们会启动错误的 ruby 版本,因此会导致错误。好像是随机的...
这个错误导致我的应用程序出现 503,因为 worker 没有正常启动。
这是我的错误:
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
Gemfile
:
gem 'puma'
Gemfile.lock
:
puma (3.11.4)
在这里为还没有弄明白的人张贴答案。
heroku config:set "BUNDLE_DISABLE_EXEC_LOAD"="true"
查看此线程:github puma issue