Unicorn Освежающий список драгоценных камней - PullRequest
2 голосов
/ 06 марта 2019

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

[2019-03-06T20: 45: 05.938802 # 7614] ИНФОРМАЦИЯ -: Обновление списка драгоценных камней

/usr/local/rvm/gems/ruby-2.5.1@citius_artis/gems/unicorn-5.5.0/lib/unicorn.rb: 49: в

блок в компоновщике: неверное количество аргументов (задано 0, ожидается 2) (ArgumentError)

Ничего не изменилось в gemfile

Если я запускаю рельсы s -e, постановка рельсов начинается нормально

Есть идеи?

Мой конфиг unicorn.rb

APP_ROOT = File.expand_path(File.dirname(File.dirname(__FILE__)))

# puts "APP ROOT ->>> #{APP_ROOT}"

if ENV['MY_RUBY_HOME'] && ENV['MY_RUBY_HOME'].include?('rvm')
  begin
    rvm_path = File.dirname(File.dirname(ENV['MY_RUBY_HOME']))
    # puts "RUBY HOME ->>> #{rvm_path}"
    rvm_lib_path = File.join(rvm_path, 'lib')
    # $LOAD_PATH.unshift rvm_lib_path
    # require 'rvm'
    # RVM.use_from_path! APP_ROOT
  rescue LoadError
    raise "RVM ruby lib is currently unavailable."
  end
end

ENV['BUNDLE_GEMFILE'] = File.expand_path('../Gemfile', File.dirname(__FILE__))
require 'bundler/setup'

if ENV['RAILS_ENV'] == 'production'
  worker_processes 2
else
  worker_processes 2
end

working_directory APP_ROOT

preload_app true

timeout 60

listen APP_ROOT + "/tmp/sockets/unicorn.sock", :backlog => 64

pid APP_ROOT + "/tmp/pids/unicorn.pid"

stderr_path APP_ROOT + "/log/unicorn.stderr.log"
stdout_path APP_ROOT + "/log/unicorn.stdout.log"

before_fork do |server, worker|
  # puts "SERVER ->>> #{server}"

  defined?(ActiveRecord::Base) && ActiveRecord::Base.connection.disconnect!

  old_pid = APP_ROOT + '/tmp/pids/unicorn.pid.oldbin'
  if File.exists?(old_pid) && server.pid != old_pid
    begin
      Process.kill("QUIT", File.read(old_pid).to_i)
    rescue Errno::ENOENT, Errno::ESRCH
      # puts "Old master alerady dead"
    end
  end
end

after_fork do |server, worker|
  if defined?(ActiveRecord::Base)
    config = ActiveRecord::Base.configurations[Rails.env] || Rails.application.config.database_configuration[Rails.env]
    config['pool'] = ENV["DB_POOL"] || ENV['RAILS_MAX_THREADS'] || 5

    ActiveRecord::Base.establish_connection(config)
  end
end

Ответы [ 2 ]

3 голосов
/ 14 марта 2019

Похоже, в 5.5.0 была введена ошибка https://bogomips.org/unicorn-public/20190307022859.mxz7m3mbspujo4c2@dcvr/

Я протестировал его исправленную версию, и она работает:

Установить версию единорога в Gemfile

gem "unicorn", "~> 5.5.0.1.g6836"

И побежал bundle update unicorn

3 голосов
/ 08 марта 2019

У меня возникла та же проблема, и, следуя совету Джона Смита, это сработало для меня:

bundle exec gem list | grep unicorn # returns unicorn (5.5.0)

измените Gemfile на gem 'единорог', '5.4.1'

bundle install

bundle exec gem list | grep unicorn # returns unicorn (5.4.1)

Тогда я смог перезапустить единорога без ошибки

...