我正在编写一个 JUnit 测试来检查大约一百个 SPARQL 查询的结果。
for(String query: queries)
{
QueryEngineHTTP qe = new QueryEngineHTTP(endpoint, query);
ResultSet rs = qe.execSelect();
while(rs.hasNext()) {...}
}
为了优化性能,我想并行执行一些查询,但不是一次全部执行。Jena 或其他库中是否有这种机制?我可以使用线程池,但我想优化的解决方案会更好,因为它可以:
- 最小化开销
- 如果存在这样的协议,通过一次向服务器提供所有查询来最小化延迟
- 指定每个端点的最大并发查询数量,这样如果我有 50 个 DBpedia 查询和 50 个 LinkedGeoData 查询,它将一次运行 5 个
- 近似查询的运行时间,以便它可以首先启动更快的查询
- 确定最适合 SPARQL 端点缓存的查询顺序