Apache Jena - 内部Ping超时不起作用

时间:2017-08-08 10:52:18

标签: java apache sparql ping jena

许多公共SPARQL端点服务的Ping超时时间为30秒。这对我的程序来说太长了,因为我希望它能在10秒内完成。

Apache Jena中有一个内部Ping Timeout的功能,但显然它不起作用,因为我测试了一些超过10秒的查询。我在下面的代码中尝试了多种变体。如果有人发布了类似的代码行,请测试是否真的有效。我感谢任何帮助。

另一个问题:如果SPARQL端点服务停止,Apache Jena的内部Ping超时是否也能正常工作?抛出异常会非常有帮助,因为我的程序中的用户不必拼命等待答案。

Java Code snip:

import java.util.concurrent.TimeUnit;

public static ResultSet executeQuery(String queryString, String service) {
    Query query = QueryFactory.create(queryString);
    QueryEngineHTTP queryEngine = QueryExecutionFactory.createServiceRequest(service, query);
    queryEngine.setTimeout(15, TimeUnit.SECONDS);
    ResultSet resultSet = queryEngine.execSelect();
    return resultSet;
}

1 个答案:

答案 0 :(得分:0)

远程服务的超时在远程服务的控制之下。它们可能提供特定于端点的方法来设置超时(请参阅其文档)。 Jena对服务器上的查询超时没有其他远程执行控制权。