许多公共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;
}
答案 0 :(得分:0)
远程服务的超时在远程服务的控制之下。它们可能提供特定于端点的方法来设置超时(请参阅其文档)。 Jena对服务器上的查询超时没有其他远程执行控制权。