Ruby sık SystemExit HTTP arama yapmak

oy
18

Ben harici bir Web hizmetine HTTP çağrıları yapan bir Ruby on Rails Web sitesi var.

Yaklaşık kez değil hizmet için bir çağrı başarısız olan bir SystemExit (aşağıda StackTrace) hatası e-posta almak Günde. Sonra sitem anları aynı sorguyu çalışırsanız daha sonra iyi çalışıyor. site yayına girdikten ve hiç şans neyin sebep izini yaşadım çünkü böyle oldu.

Yakut sürüm 1.8.6 ve raylar sürüm 1.2.6 olduğunu.

Başkasının bu sorun var?

Bu hata ve StackTrace olduğunu.

Bir SystemExit /usr/local/lib/ruby/gems/1.8/gems/rails-1.2.6/lib/fcgi_handler.rb:116:in çıkış' oluştu /usr/local/lib/ruby/gems/1.8/gems/ raylar-1.2.6 / lib / fcgi_handler.rb: 116: exit_now_handler içinde' to_proc /usr/local/lib/ruby/gems/1.8/gems/activesupport-1.4.4/lib/active_support/inflector.rb:250:in 'sysread /usr/local/lib/ruby/1.8/net/protocol.rb:133:in 'diyoruz /usr/local/lib/ruby/1.8/net/protocol.rb:133:in'/ usr / local / lib / yakut / 1.8 / net / protocol.rb: 133: rbuf_fill içinde /usr/local/lib/ruby/1.8/timeout 'zaman aşımı /usr/local/lib/ruby/1.8/timeout.rb:56:in'. rb: 76: '/usr/local/lib/ruby/1.8/net/protocol.rb:132:in rbuf_fill' /usr/local/lib/ruby/1.8/net/protocol.rb:116:in readuntil zaman aşımına '/usr/local/lib/ruby/1.8/net/protocol.rb:126:in taleb' /usr/local/lib/ruby/1.8/net/http.rb:2017:in read_status_line'/ usr / local / lib / yakut / 1.8 / net / http.rb: 2006: in read_new isteği /usr/local/lib/ruby/1.8/net/http.rb:1047:in '/usr/local/lib/ruby/1.8/ net / http.rb: 945: request_get içinde' /usr/local/lib/ruby/1.8/net/http.rb:380:i n MESAJ_AL MESAJ_AL /usr/local/lib/ruby/1.8/net/http.rb:379:in 'başlatmak /usr/local/lib/ruby/1.8/net/http.rb:543:in''

Oluştur 02/08/2008 saat 18:26
kaynak kullanıcı
Diğer dillerde...                            


4 cevaplar

oy
8

Ben fcgi kullanılan süre beri oldu ama iplik çok uzun süreceği eğer fcgi süreci SystemExit atmak düşünüyorum. Bu yanıt vermiyor web hizmeti ve hatta yavaş DNS sorgu olabilir. Bazı google sonuçları Python ve fcgi yüzden iyi bir fikir olacağını melez geçmeden benzer bir hata göstermiyor. Bu mesaj ı kurulum melez için kullanılan benim referanstır ve hala ona geri gelir.

Cevap 03/08/2008 saat 06:22
kaynak kullanıcı

oy
8

Ruby ile fcgi kullanmak çok hatalı olduğu bilinmektedir.

Pratik olarak herkes taşındı Mongrel'ı bu nedenle, ben aynı şeyi tavsiye ederiz.

Cevap 02/08/2008 saat 18:50
kaynak kullanıcı

oy
5

Ben Apache1 / fastcgi bu her zaman almak için kullanılır. Ben Ruby yapılır telefonu kapamadan önce fastcgi neden olduğunu düşünüyorum.

melez geçiş iyi bir ilk adımdır, ama yapacak daha çok şey var. Özellikle Raylar gelen, canlı sayfalardaki web hizmetlerinden itlaf kötü bir fikirdir. Raylar evreli değil. Eğer destek olabilir eşzamanlı bağlantı sayısı Kümenizdeki Melezler (veya Yolcu süreçlerinin) sayısına eşittir.

Bir melez olan ve birisi zaman aşımına 10 saniye sürüyor bir web hizmeti çağrıları bir sayfa erişirse, web her isteği bu süre içinde zaman aşımına uğrar. İki Mongrels varsa Melezler aracılığıyla sadece döngüsü körlemesine yük dengeleyici çoğu, bu yüzden, her isteği zaman aşımına uğrar.

Tahmin edilemeyecek yavaş olabilir şey bir iş kuyruğunda gerçekleşmesi gerekmektedir. / Yavaş / eylem ilk vuruş kuyruğuna işi ekler ve / yavaş / aksiyon iş bitene kadar ajax ile sayfa yenilenir veya sorgu yoluyla ferahlatıcı devam ediyor ve sonra iş kuyruğundan sonuçlarınızı olsun. En eski ve belki de en yaygın biridir kullanılan Orada Raylar için birkaç iş kuyruklar günümüzde vardır, ama BackgroundRB .

Başka bir alternatif, uygulamanızın niteliğine bağlı olarak, cron üzerinden hizmeti her N dakikada itlaf verileri yerel olarak önbelleğe ve canlı sayfa önbellekten okunan sahip olmaktır.

Cevap 30/08/2008 saat 05:55
kaynak kullanıcı

oy
1

Ben de bir göz alacağını Yolcu . Apaçi / nginx + Mongrel'ı geleneksel çözümü daha gitmem çok daha kolay.

Cevap 11/08/2008 saat 17:36
kaynak kullanıcı

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more