Tôi muốn tìm cách đặt giới hạn thời gian trên mã ruby để mã sẽ thoát sau khi giới hạn thời gian đó hết hạn.Cách đặt giới hạn thời gian cho mã Ruby chạy
Trả lời
Tôi không chắc chắn tại sao câu hỏi này bị giảm giá, việc này rất đơn giản với mô-đun timeout.
Điều này cho phép bạn vượt qua một khối và một khoảng thời gian. Nếu khối hoàn thành trong khoảng thời gian, giá trị được trả về. Nếu không thì một ngoại lệ sẽ bị ném. Ví dụ sử dụng:
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
Trong sử dụng:
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
Tốt! câu trả lời. Ngắn nhưng đến điểm. Nhưng một câu hỏi là tại sao 'load', thay vì' require'? –
tải là tốt hơn khi thử nghiệm một tập lệnh, vì yêu cầu sẽ không tải lại nó sau khi bạn thay đổi nó (yêu cầu theo dõi những gì bạn đã yêu cầu vì vậy cùng một kịch bản không được yêu cầu nhiều lần). –
Bất kỳ nguồn nào tốt để kiểm tra sự khác biệt giữa 'tải' và' yêu cầu'? Bạn có thể giới thiệu tôi không? –
- 1. Erlang và giới hạn bản ghi thời gian chạy
- 2. Làm cách nào để bạn có thể đặt giới hạn thời gian cho tập lệnh PowerShell để chạy?
- 3. PHP: Mã hóa các tập lệnh chạy dài khi máy chủ áp đặt giới hạn thời gian thực hiện
- 4. TV AIR - có thể giới hạn bộ nhớ tối đa cho thời gian chạy không?
- 5. nginx auth_basic giới hạn thời gian
- 6. Drools: Quy tắc giới hạn thời gian
- 7. Đặt giới hạn thời gian cho một nhiệm vụ cụ thể với cần tây
- 8. Thời gian chờ nhiệm vụ của Celery/giới hạn thời gian cho các cửa sổ?
- 9. Tránh giới hạn thời gian thực thi PHP
- 10. Đặt giới hạn thời gian chờ của phiên cho giao diện người dùng Magento
- 11. chỉ đặt giới hạn dưới của giới hạn cho ggplot
- 12. Làm cách nào để đặt giới hạn thời gian quay video trong iPhone?
- 13. Đặt giới hạn hết hạn để readLine()?
- 14. Thời gian giới hạn một phương thức trong C#
- 15. Làm cách nào để đặt giới hạn thời gian trên get_file_contents trong PHP?
- 16. Luồng trong Ruby với giới hạn
- 17. Cách đặt cài đặt khóa recaptcha tại thời gian chạy
- 18. Điều hoà/giới hạn tốc độ ruby cơ giới hóa
- 19. Giới hạn thời gian thực của Instagram API
- 20. Làm cách nào để thay đổi giới hạn thời gian cho webClient.UploadData()?
- 21. Đặt giới hạn thời gian chờ của phiên làm việc trước trong joomla
- 22. Giới hạn thời gian thực thi cho một kịch bản Lua được gọi từ C API
- 23. Giới hạn thời gian mà một hàm xử lý trong R cho vòng lặp
- 24. Mã QR Giới hạn
- 25. Cách đặt giới hạn cho truy vấn hibernate
- 26. nodejs: Có thể eval mã js bằng cách sử dụng runInNewContext và giới hạn thời gian thực thi của nó bằng một thời gian chờ không?
- 27. Làm cách nào để khắc phục giới hạn thành phần Windows đối với các loại thời gian chạy Windows?
- 28. Tôi có thể làm đơn xin giới hạn thời gian bằng cách nào?
- 29. Nhúng giới hạn thời gian siêu dữ liệu cho dự án Flash Builder 4.5.1mobile?
- 30. Ghi thời gian giới hạn của Android bằng cách sử dụng mục đích
Tại sao không làm 'Time.new', làm X vòng, sau đó kiểm tra để xem nếu thời gian mới là hơn thời hạn của bạn sau thời gian bạn bắt đầu lúc nào? Hay bạn không có quyền kiểm soát chức năng mất nhiều thời gian để chạy? Nếu vậy, khả năng của bạn là 1) gọi nó là không đồng bộ, vì vậy mã của bạn vẫn có quyền kiểm soát và chỉ có thể bỏ sau một thời gian 2) viết một quá trình thứ hai để chấm dứt đầu tiên nếu mất quá nhiều thời gian – Patashu