concurrency - 微笑随机森林中的空指针异常预测并发用户
问题描述
当我使用 2 个并发用户调用微笑库的 predict 方法时,出现以下错误。我正在使用 Gatling 和 akka http 网络服务。升级到 2.6 的微笑并没有解决问题。当我按顺序运行请求时,问题不会发生。
ERROR com.xxx.search.Server$ - Failed request
java.lang.NullPointerException: null
at smile.data.formula.Formula$2.getDouble(Formula.java:358)
at smile.base.cart.OrdinalNode.predict(OrdinalNode.java:45)
at smile.classification.DecisionTree.predict(DecisionTree.java:361)
at smile.classification.RandomForest.predict(RandomForest.java:514)
at MLUtil.AssetClassifierModel.$anonfun$predict$1(AssetClassifierModel.scala:32)
at MLUtil.AssetClassifierModel.$anonfun$predict$1$adapted(AssetClassifierModel.scala:31)
at scala.collection.immutable.Range.map(Range.scala:59)
at MLUtil.AssetClassifierModel.predict(AssetClassifierModel.scala:31)
at MLUtil.AssetClassifierModel.predict(AssetClassifierModel.scala:41)
at classifier.AssetClassifier.predict(AssetClassifier.scala:52)
at com.refinitiv.eit.isearch.runtime.AssetClassifierImpl$.$anonfun$classify$1(AssetClassifierImpl.scala:28)
at scala.concurrent.Future$.$anonfun$apply$1(Future.scala:661)
at scala.concurrent.impl.Promise$Transformation.run(Promise.scala:430)
at akka.dispatch.BatchingExecutor$AbstractBatch.processBatch(BatchingExecutor.scala:55)
at akka.dispatch.BatchingExecutor$BlockableBatch.$anonfun$run$1(BatchingExecutor.scala:92)
at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.scala:18)
at scala.concurrent.BlockContext$.withBlockContext(BlockContext.scala:94)
at akka.dispatch.BatchingExecutor$BlockableBatch.run(BatchingExecutor.scala:92)
at akka.dispatch.TaskInvocation.run(AbstractDispatcher.scala:42)
at akka.dispatch.ForkJoinExecutorConfigurator$AkkaForkJoinTask.exec(ForkJoinExecutorConfigurator.scala:47)
at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056)
at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692)
at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)
解决方案
推荐阅读
- scala - Scala Akka 类型未指定值参数
- haskell - 是否可以有一个数据类型只有另一个数据类型的构造函数?
- ruby - 是否将字符串传递回 FFI 模块中必要的调用代码以防止内存泄漏?
- java - 有什么方法可以删除 JShell 中的历史记录?
- java - 如何更新方法中的值?
- excel - Excel 的 Range.Value 属性在更新后不再与 xlRangeValueMSPersistXML 参数一起使用
- google-apps-script - 用于从文件夹中的所有工作表中获取唯一值的 Google Apps 脚本
- python - 使用 OOP 运行 python 脚本时出错
- python - 在各种 url 上迭代相同的刮板代码
- android - 如何在 Android Studio 中使用 android.test.mock