Bir ruby kodunda bir zaman sınırı belirlemenin bir yolunu bulmak istiyorum, böylece o zaman sınırından sonra çıkacak.Çalıştırılacak bir Ruby kodunun zaman sınırı nasıl ayarlanacağı
cevap
Neden bu sorunun neden reddedildiğini bilmiyorum, timeout modülüyle yapmak çok basit.
Bu, bir blok ve bir zaman aralığı geçirmenizi sağlar. Blok, zaman dilimi içinde tamamlarsa, değer döndürülür. Aksi halde bir istisna atılır. Örnek kullanım:
require 'timeout'
def run
begin
result = Timeout::timeout(2) do
sleep(1 + rand(3))
42
end
puts "The result was #{result}"
rescue Timeout::Error
puts "the calculation timed out"
end
end
Kullanımda: yeni zaman zaman sonra zaman sınırından daha fazla ise
2.0.0p0 :005 > load 'test.rb'
=> true
2.0.0p0 :006 > run
the calculation timed out
=> nil
2.0.0p0 :007 > run
the calculation timed out
=> nil
2.0.0p0 :008 > run
The result was 42
=> nil
Nice! Cevap. Kısa ama noktaya. Ama bir soru, 'require' yerine 'load' neden? Bir betik test edilirken –
yükü daha iyidir, gerektiğinde bunu değiştirdikten sonra yeniden yüklemeyecektir (aynı komut dosyasının birden fazla kez gerek duyulmasını gerektirmediğinden izlenmesi gerekir). –
'load' ile' require' arasındaki farkı kontrol etmek için iyi bir kaynak var mı? Bana bakar mısın? –
- 1. Aynı anda çalıştırılacak bir AsyncTasks sınırı var mı?
- 2. Ruby Dizi sınırı yöntemi
- 3. Prototip-scoped beans'de @Predestroy ne zaman çalıştırılacak?
- 4. onConnectionSuspended. Nasıl test edilir? Bu kod ne zaman çalıştırılacak?
- 5. readLine() için bir zaman aşımı sınırı belirleme?
- 6. Java sorunu zaman sınırı sorunu
- 7. Alt gezinmeye nasıl ayarlanacağı
- 8. Laravel - Çalıştırılacak AJAX verisi
- 9. kodunun
- 10. Saatin bash'da nasıl doğru ayarlanacağı?
- 11. onPrepareDialog'da setSingleChoiceItems içeriğinin nasıl ayarlanacağı?
- 12. Bir eylem gönderildiğinde tüm redüktörler çalıştırılacak?
- 13. Ruby/Rails: Bir UNIX zaman damgasına dönüştürme
- 14. Jquery/Javascript: Yenilendiğinde zaman sınırı sıfırlaması nasıl önlenir?
- 15. Rails API, işleyicilerin nasıl ayarlanacağı/geçersiz kılınacağı
- 16. mysql veritabanına bağlanmak için zaman sınırı nasıl ayarlanır
- 17. Kod bloğu için bir zaman sınırı ayarlayabilir miyim?
- 18. Bir php kodunun içine script nasıl eklenir?
- 19. Ruby Net :: HTTP zaman aşımı
- 20. UITextField sınırı nasıl gizlenir?
- 21. Jsp Girdi Kutusu değerini nasıl ayarlanacağı
- 22. Bir üst kullanıcı arayüzünün içindeki uiview boyutunun nasıl ayarlanacağı?
- 23. gerekli olduğunda sistem kitaplıklarını kullanmak için bundler yapılandırmasının nasıl ayarlanacağı
- 24. Yuvalanmış ekran görüntüsünün yapışkan bir görünüme nasıl ayarlanacağı nasıl oluşturulur?
- 25. Java 7 Mac'te 32 bit olarak çalıştırılacak
- 26. Ruby Programına biraz zaman beklemesini söyleyin
- 27. DateTime vs date ne zaman, ruby / raylarda zaman alanlarını kullanmalıyım?
- 28. Kotlin kodunun Diyagramlarını ve UML'lerini nasıl oluştururum?
- 29. JFileChooser.showSaveDialog (...) - önerilen dosya adının nasıl ayarlanacağı
- 30. Düğmenin iç metin kenar boşluğunun nasıl ayarlanacağı
Neden 'Time.new' yapma, yapma X'in ardından kontrol döngüleri görmek için sen Başlangıç? Ya da çalışmak için uzun süren fonksiyon üzerinde kontrolünüz yok mu? Eğer öyleyse, olasılıklarınız 1) asenkronize olarak adlandırın, bu yüzden kodunuz hala kontrole sahip ve bir süre sonra pes edebilir 2) çok uzun sürerse ilk sonlandırmak için ikinci bir işlem yazınız – Patashu