如何从java运行多线程的jython脚本?
发布时间:2020-12-14 16:47:36 所属栏目:Java 来源:网络整理
导读:我正在 Java中构建一个框架,该框架将监听事件,然后在Jython中处理它们.不同的事件类型将被发送到不同的脚本. 由于jython在调用PythonInterpreter.exec()时需要相当长的时间来编译脚本,所以我必须预编译脚本.我正在做以下的方式: // initialize the script a
我正在
Java中构建一个框架,该框架将监听事件,然后在Jython中处理它们.不同的事件类型将被发送到不同的脚本.
由于jython在调用PythonInterpreter.exec()时需要相当长的时间来编译脚本,所以我必须预编译脚本.我正在做以下的方式: // initialize the script as string (would load it from file in final version) String script = "print 'foo'"; // get the compiled code object PyCode compiled = org.python.core.__builtin__.compile( script,"<>","exec" ); PyCode编译对象将被推送到存储库,并在事件进入时使用 PythonInterpreter pi = new PythonInterpreter(); pi.set( "variable_1","value_1"); pi.set( "variable_x","value_x"); pi.exec( compiled ); 现在我的难题 – 可能会发生同时发生某些类型的多个事件 – 因此脚本同时运行的多个实例. 几乎所有的脚本可能会保持短暂 – 多达100行,没有循环.数字和频率是完全随机的(用户生成的事件),每个事件类型可以是每秒0到约200个. 做最好的方法是什么?我正在看几种可能性: >在触发器事件点使用同步 – 这将阻止同一个脚本的多个实例,但事件也不会像应该那样快速地处理 2号和3号的组合可能是最好的 – 创建动态池大小? 那么,有什么想法吗? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |