2015-05-29 24 views
15

için iplik güvenliğini nasıl kontrol ettiğimi Raumalarım uygulamasını Puma web sunucusu kullanarak Heroku'ya dağıtmak istiyorum. Ancak, tüm Mücevherlerin iplik güvenli olup olmadığından emin değilim. Tüm Gems kaynak kodlarını okumak bizim için uygun bir seçenek değildir.Rails uygulamasının Puma

İplik güvenliği için tüm Taşları otomatik olarak kontrol etmenin bir yolu var mı? Veya iş parçacığı güvenli olmayan kod çalıştırıldığında/algılandığında Puma özel hata günlüğünü şikayet ediyor/gösteriyor mu?

+2

FWIW Ruby'de iplik güvenliği en iyisidir. Bu, Jose'nin Elixir'i yarattığı reaktiften biri. Herhangi bir ruby ​​kodunda iplik güvenliğini saymazdım. En iyi bahsiniz, rubinius veya jruby – engineerDave

cevap

1

Konu güvenliği genelde tespit edilemez. Otomatik olarak algılamanın bir yolu varsa, muhtemelen derleyiciniz/tercümanınız sizi bu konuda uyarır. Race conditions otomatik sistemler tarafından tespit edilemez, hatta çoğaltmak bile zor olabilir.

senin tercüman bağlı:

  • CRubyGIL vardır, anlamsızdır ile çok Puma kullanarak.
  • veya Rubinius veya Rubinius kullanıyorsanız, büyük olasılıkla Puma'dan yararlanabilirsiniz ve muhtemelen kullandığınız taşlar kendi yöntemlerini/sınıflarını iş parçacığı güvenliği belgelemiştir. Bu durumda tek ihtiyacınız olan kodunuzu kontrol etmektir.
+0

'dur. GIL, iş parçacığı için güvenli olmayan kod yazamayacağınız anlamına gelmez –

+0

"GIL kullanan bir yorumlayıcı, birden çok kez çalıştırılsa bile, her seferinde tam olarak bir iş parçacığının yürütülmesine izin verir. çekirdek işlemci "=> bellek paylaşıldığı sürece, kilitlenme, yarış koşulları, yaşanacaklık sorunu ortaya çıkması mümkün değil mi? –

+0

Tamam, bu konuda haklısınız. GIL, oluşabilecek olası iş parçacığı sorunlarının çoğunu basitleştirir. Haklısınız, asıl önemli olan, iplik güvenliğini kodun bazı otomatik şekilde test edememeniz ve GIL ile Ruby uygulaması için 'Puma''nın' Unicorn’u kullanmanın yararları yoktur. – hakcho

İlgili konular