2016-09-03 8 views
0

Я запускаю приложение rails на heroku, у меня есть два веб-динамика. Как я могу удалить! ПРЕДУПРЕЖДЕНИЕ: обнаружено 1 Thread (s), запущенный в загрузке приложения: предупреждение?rufus + puma + heroku warning

Мой puma.rb файл:

workers Integer(ENV['WEB_CONCURRENCY'] || 2) 
threads_count = Integer(ENV['RAILS_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_number| 
    # 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 

Журналы:

2016-09-03T14:21:24.742960+00:00 app[web.1]: [3] * Listening on tcp://0.0.0.0:53786 
2016-09-03T14:21:24.743135+00:00 app[web.1]: [3] ! WARNING: Detected 1 Thread(s) started in app boot: 
2016-09-03T14:21:24.743181+00:00 app[web.1]: [3] ! #<Thread:[email protected]/app/vendor/bundle/ruby/2.2.0/gems/rufus-scheduler-3.2.2/lib/rufus/scheduler.rb:563 sleep> - /app/vendor/bundle/ruby/2.2.0/gems/rufus-scheduler-3.2.2/lib/rufus/scheduler.rb:571:in `sleep' 
2016-09-03T14:21:24.743257+00:00 app[web.1]: [3] Use Ctrl-C to stop 
2016-09-03T14:21:24.754941+00:00 app[web.1]: [3] - Worker 0 (pid: 7) booted, phase: 0 
2016-09-03T14:21:24.756269+00:00 app[web.1]: [3] - Worker 1 (pid: 20) booted, phase: 0 
2016-09-03T14:21:25.525174+00:00 app[web.2]: ** [NewRelic][2016-09-03 14:21:25 +0000 web.2 (18)] INFO : Doing deferred dependency-detection before Rack startup 

ответ

1

Это очень легко. Прекратите использование rufus-scheduler. Он использует потоки, вот что вызывает ваше предупреждение.

Посмотрите:

2016-09-03T14:21:24.743181+00:00 app[web.1]: [3] ! 
<Thread:[email protected] 
/app/vendor/bundle/ruby/2.2.0/gems/rufus-scheduler-3.2.2/lib/rufus/scheduler.rb:563 
sleep> - 
/app/vendor/bundle/ruby/2.2.0/gems/rufus-scheduler-3.2.2/lib/rufus/scheduler.rb:571 
:in `sleep' 

Руфус-планировщик явно является причиной предупреждения.

Cf https://github.com/jmettraux/rufus-scheduler/issues/213

Теперь есть еще один способ смотреть на вещи: предупреждение не испускается Руфус-планировщиком, это испускаемое Puma. Вероятно, есть способ отключить предупреждение, но это вопрос для людей со знанием Пумы.