ruby - 如果超过 5 秒,如何退出使用 Ruby 运行的进程?

标签 ruby process execution-time

我正在用 Ruby 实现一个检查系统。它运行具有不同测试的可执行文件。如果解决方案不正确,则可能需要很长时间才能完成某些严格的测试。这就是为什么我想将执行时间限制为 5 秒。

我正在使用 system() 函数来运行可执行文件:

system("./solution");

.NET 有一个很棒的 WaitForExit() 方法,那么 Ruby 呢?

有没有办法将外部进程的执行时间限制为 5 秒?

谢谢

最佳答案

您可以使用标准超时库,如下所示:

require 'timeout'
Timeout::timeout(5) { system("./solution") }

这样您就不必担心同步错误。

关于ruby - 如果超过 5 秒,如何退出使用 Ruby 运行的进程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4574085/

相关文章:

ruby - Jekyll 2.0 中的 SCSS 生成错误

ruby - 解释那些转义数字在 ruby​​ 1.8.7 中的 unicode 编码中意味着什么

cocoa - OSX Cocoa 应用程序的空白进程名称?

c# - 如何从 MainWindowHandle 获取窗体?

ruby-on-rails - 运行抽佣 Assets :precompile fails when there's no tables (yet)

ruby - 如何在 gRPC ruby​​ 客户端中传递哈希对象

java - 从 java servlet 运行长进程的最佳方法是什么?

JAVA:静态方法在执行过程中对性能有很大影响吗?

c# - 减少 WMI 查询执行时间

c++ - 在 C++ 中计算执行时间