SORU
3 Temmuz 2013, ÇARŞAMBA


Unicorn çıkış VADELİ yakalama ve gönderdikten sonra Heroku üzerinde zaman aşımı ÇIKIN

Heroku bir uygulama unicorn ve sidekiq çalışan R12 Çıkış zaman Aşımı hataları alıyorum. Bu hatalar 1-2 kez bir gün ve ne zaman atanıyorum oluşur. Tek boynuzlu at için Heroku gelen kapatma sinyalleri doğru yanıt dönüştürmek için ihtiyacım olduğunu anlıyorum, ama o kadar aşağıda unicorn yapılandırma yaptırdım düşündüm:

worker_processes 3
timeout 30
preload_app true

before_fork do |server, worker|
  Signal.trap 'TERM' do
    puts "Unicorn master intercepting TERM and sending myself QUIT instead. My PID is #{Process.pid}"
    Process.kill 'QUIT', Process.pid
  end

  if defined?(ActiveRecord::Base)
    ActiveRecord::Base.connection.disconnect!
    Rails.logger.info('Disconnected from ActiveRecord')
  end
end

after_fork do |server, worker|
  Signal.trap 'TERM' do
    puts "Unicorn worker intercepting TERM and doing nothing. Wait for master to sent QUIT. My PID is #{Process.pid}"
  end

  if defined?(ActiveRecord::Base)
    ActiveRecord::Base.establish_connection
    Rails.logger.info('Connected to ActiveRecord')
  end

  Sidekiq.configure_client do |config|
    config.redis = { :size => 1 }
  end
end

Benim hata şöyle: çevre kaydeder

Stopping all processes with SIGTERM
Unicorn worker intercepting TERM and doing nothing. Wait for master to sent QUIT. My PID is 7
Unicorn worker intercepting TERM and doing nothing. Wait for master to sent QUIT. My PID is 11
Unicorn worker intercepting TERM and doing nothing. Wait for master to sent QUIT. My PID is 15
Unicorn master intercepting TERM and sending myself QUIT instead. My PID is 2
Started GET "/manage"
reaped #<Process::Status: pid 11 exit 0> worker=1
reaped #<Process::Status: pid 7 exit 0> worker=0
reaped #<Process::Status: pid 15 exit 0> worker=2
master complete
Error R12 (Exit timeout) -> At least one process failed to exit within 10 seconds of SIGTERM
Stopping remaining processes with SIGKILL
Process exited with status 137

Çocuk süreçlerini başarılı bir şekilde zaman aşımı önce hasat anlaşılmıştır. Usta hala hayatta olması mümkün mü? Ayrıca, yönlendirici hala kapalıydı günlükleri olarak gösterilen sırasında dyno web istekleri göndermek olmalıdır?

FWIW, Heroku sıfır kesinti dağıtım eklentisi (https://devcenter.heroku.com/articles/labs-preboot/) kullanıyorum.

CEVAP
1 Aralık 2013, Pazar


Özel kullanım burada zaman aşımı neyin sebep olduğunu işaret bence.

Heroku belgelerine itiraz etmiyor için downvoted alıyorum ve bu hitap etmek istiyorum. EDİT:

Ve TERİM sinyali yutmak Unicorn uygulamanızın yapılandırma başvurunuzun en olası nedeni ve aşağı doğru kapatma asılı.

Heroku ve alıcı dönüştürülmesi iddia gibi görünüyorTERİMbir sinyalÇIKINsinyal düzgün bir kapatma içine sert bir kapatma açmak için doğru bir davranıştır.

Ancak bunu yapabilmek için herhangi bir kapanma riski bazı durumlarda, bu hata kök tanıtmak gibi görünüyor. Kullanıcılar asılı dinamometre döngüleri Unicorn çalışan yaşayan kanıtları göz önünde bulundurun ve kendi kararını ilk kural, sadece belgelere dayanarak yapmak gerekir.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Gee Cee

    Gee Cee

    1 AĞUSTOS 2009
  • LAHWF

    LAHWF

    5 Kasım 2009
  • RawBrahs

    RawBrahs

    28 Aralık 2010