干净地停止正在运行的JRuby scriptlet

时间:2014-06-05 11:28:33

标签: java ruby multithreading jruby

我正在使用JRuby从Java运行Ruby脚本,如下所示:

public class ScriptletRunnable implements Runnable {
    @Override
    public void run() {
        ScriptingContainer scriptingContainer = new ScriptingContainer();
        scriptingContainer.runScriptlet(/*My script*/); // this is a blocking call, never returns
    }
}

我将此runnable传递给新线程并启动线程。当我想停止运行脚本时,我似乎找不到告诉ScriptingContainer停止执行脚本的方法。即使我将其作为成员并在其上调用terminate(),脚本也不会停止。如果从命令行运行脚本,则可以使用Ctrl+C将其彻底关闭。必须有办法通过JRuby实现这一目标。

0 个答案:

没有答案