如果需要超过5秒,如何退出使用Ruby的进程?

Ale*_*lex 6 ruby process execution-time

我正在用Ruby实现一个检查系统.它使用不同的测试运行可执行文件.如果解决方案不正确,可能需要永远完成某些硬测试.这就是为什么我想将执行时间限制为5秒.

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

system("./solution");
Run Code Online (Sandbox Code Playgroud)

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

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

谢谢

Tim*_*onk 11

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

require 'timeout'
Timeout::timeout(5) { system("./solution") }
Run Code Online (Sandbox Code Playgroud)

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