@Override public void nextTuple() { try { if (numOfReports < maxReports) { currTime = System.nanoTime(); LOG.info( "startTime: " + startTime + " currTime: " + currTime + " interval: " + ((currTime - startTime) * 1e-6)); if (((currTime - startTime) * 1e-6) >= interval) { if (query == null) query = QueryFactory.create(queryString); Store store = StoreFactory.getJenaHBaseStore(configFile, iri, isReified); int solnCount = 0; ResultSet rs = store.executeSelectQuery(query); List<Var> listVars = query.getProject().getVars(); while (rs.hasNext()) { solnCount++; QuerySolution qs = rs.next(); Object[] results = new String[listVars.size() + 1]; if (solnCount == 1) results[0] = "new"; else results[0] = "cont"; for (int i = 1; i <= listVars.size(); i++) { Var var = listVars.get(i - 1); RDFNode value = qs.get(var.toString()); if (value.isResource() || value.isAnon()) results[i] = value.asResource().toString(); else if (value.isLiteral()) results[i] = value.asLiteral().toString(); } collector.emit(new Values(results)); } numOfReports += 1; startTime = currTime; } Thread.sleep(30000); } } catch (Exception e) { throw new TopologyException("Exception in query spout:: ", e); } }