我正在使用Apache Commons Pool创建一个 Nashorn 引擎池。在应用程序启动时,我调用以将所有脚本的实例数preparePool()
预热到引擎中,以便它准备好立即响应调用。minIdle
eval()
invokeFunction()
热身赛
@Override
public NashornScriptEngine create() {
// ...
try {
engine.eval(asset1);
engine.eval(asset2);
engine.eval(asset3);
} // ...
return engine;
}
根据池大小和预加载脚本的复杂性,这需要相当长的时间。
问题
我可以只预热一个实例并安全地将其克隆到
minIdle
实例数量吗?可以安全地序列化和持久化已创建实例的克隆吗?(这将允许维护一个引擎缓存,仅在其中一项资产更改时才需要失效)
相关资源(将在适当时更新此部分)