有没有办法在执行特定时间后停止脚本?
答案 0 :(得分:0)
这是一个相当模糊的问题。以下是一些想法:
$!
。答案 1 :(得分:0)
我有同样的问题。我目前的方法看起来像这样(并没有按预期工作......):
// jruby-complete-1.6.0.RC2.jar
import org.jruby.Ruby;
class JRubyStop {
public static void main(String[] args) throws InterruptedException {
final Ruby jruby = Ruby.newInstance();
Thread jrubyThread = new Thread() {
public void run() {
String scriptlet = "for i in 0..100; puts i; sleep(1); end";
jruby.evalScriptlet(scriptlet);
}
};
jrubyThread.start();
Thread.sleep(5000);
System.out.println("interrupt!");
jrubyThread.interrupt();
System.out.println("interrupted?!");
}
}
输出后“中断?!”线程仍然运行直到scriptlet结束。
编辑:将Groovy示例转换为Java SSCCE(http://sscce.org/)。
答案 2 :(得分:0)
超级迟到的答案,但这是我使用的:
require 'timeout'
status = Timeout::timeout(5)
{
# Something that should be interrupted if it takes more than 5 seconds...
}