Мне нужно выполнить этот запрос несколько раз, если ничего не возвращается или не отвечает.
Конечная точка:
http://opendata.comune.arezzo.it/services/lod/sparql
Запрос:
SELECT DISTINCT ?p
WHERE
{ ?s a <https://ldp.ldpgis.it/ontologies/1/ldpgisOntology/LdPOntology.rdf#clAccessoEsterno>.
?s ?p ?o
}
Если я запускаю этот запрос на их сайте возвращает это сообщение:
Не удалось разобрать ответ сервера (неполный результат из-за тайм-аута?)
Это мой код:
Boolean success = false;
ResultSet results = null;
success = false;
int maxRepNumber = 2;
ParameterizedSparqlString qs = new ParameterizedSparqlString(Query above);
QueryEngineHTTP exec = QueryExecutionFactory.createServiceRequest(endpoint.getEndpointUri(), qs.asQuery());
while (success == false && maxRepNumber > 0) {
try { exec.setTimeout(120000, TimeUnit.MILLISECONDS, 120000, TimeUnit.MILLISECONDS);
results = exec.execSelect();
success = true;
} catch (Exception e) {
maxRepNumber--;
}
}
if(success == true){//do things}
, когда я запускаю этот код, он работает в течение первых нескольких циклов времени и, наконец, он застревает во время выполнения results = exec.execSelect();
.
Что бы я хотел остановить выполнение запроса через определенное время , , даже если я не получил ответ . Возможно ли это?
Спасибо
EDIT => Решено в комментариях ниже!