Class ParallelServiceExecutor
- java.lang.Object
-
- org.eclipse.rdf4j.common.iteration.AbstractCloseableIteration<E,X>
-
- org.eclipse.rdf4j.common.iteration.LookAheadIteration<BindingSet,QueryEvaluationException>
-
- org.eclipse.rdf4j.federated.evaluation.concurrent.ParallelServiceExecutor
-
- All Implemented Interfaces:
AutoCloseable
,Runnable
,CloseableIteration<BindingSet,QueryEvaluationException>
,Iteration<BindingSet,QueryEvaluationException>
,ParallelExecutor<BindingSet>
public class ParallelServiceExecutor extends LookAheadIteration<BindingSet,QueryEvaluationException> implements ParallelExecutor<BindingSet>
Parallel executor forFedXService
nodes, which wrap SERVICE expressions. Uses the union scheduler to execute the task- Author:
- Andreas Schwarte
-
-
Field Summary
Fields Modifier and Type Field Description protected BindingSet
bindings
protected Exception
error
protected FederationContext
federationContext
protected boolean
finished
protected static org.slf4j.Logger
log
protected CloseableIteration<BindingSet,QueryEvaluationException>
rightIter
protected FedXService
service
protected FederationEvalStrategy
strategy
-
Constructor Summary
Constructors Constructor Description ParallelServiceExecutor(FedXService service, FederationEvalStrategy strategy, BindingSet bindings, FederationContext federationContext)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addResult(CloseableIteration<BindingSet,QueryEvaluationException> res)
Handle the result appropriately, e.g.void
done()
Inform the controlling instance that some job is done from a different thread.protected BindingSet
getNextElement()
Gets the next element.QueryInfo
getQueryInfo()
Return the query info of the associated queryboolean
isFinished()
Return true if this executor is finished or abortedvoid
run()
void
toss(Exception e)
Toss some exception to the controlling instance-
Methods inherited from class org.eclipse.rdf4j.common.iteration.LookAheadIteration
handleClose, hasNext, next, remove
-
Methods inherited from class org.eclipse.rdf4j.common.iteration.AbstractCloseableIteration
close, isClosed
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.eclipse.rdf4j.common.iteration.CloseableIteration
stream
-
-
-
-
Field Detail
-
log
protected static final org.slf4j.Logger log
-
service
protected final FedXService service
-
strategy
protected final FederationEvalStrategy strategy
-
bindings
protected final BindingSet bindings
-
federationContext
protected final FederationContext federationContext
-
rightIter
protected CloseableIteration<BindingSet,QueryEvaluationException> rightIter
-
finished
protected boolean finished
-
error
protected Exception error
-
-
Constructor Detail
-
ParallelServiceExecutor
public ParallelServiceExecutor(FedXService service, FederationEvalStrategy strategy, BindingSet bindings, FederationContext federationContext)
- Parameters:
service
-strategy
-bindings
-federationContext
-
-
-
Method Detail
-
addResult
public void addResult(CloseableIteration<BindingSet,QueryEvaluationException> res)
Description copied from interface:ParallelExecutor
Handle the result appropriately, e.g. add it to the result iteration. Take care for synchronization in a multithreaded environment- Specified by:
addResult
in interfaceParallelExecutor<BindingSet>
-
toss
public void toss(Exception e)
Description copied from interface:ParallelExecutor
Toss some exception to the controlling instance- Specified by:
toss
in interfaceParallelExecutor<BindingSet>
-
done
public void done()
Description copied from interface:ParallelExecutor
Inform the controlling instance that some job is done from a different thread. In most cases this is a no-op.- Specified by:
done
in interfaceParallelExecutor<BindingSet>
-
isFinished
public boolean isFinished()
Description copied from interface:ParallelExecutor
Return true if this executor is finished or aborted- Specified by:
isFinished
in interfaceParallelExecutor<BindingSet>
- Returns:
- whether the execution is finished
-
getQueryInfo
public QueryInfo getQueryInfo()
Description copied from interface:ParallelExecutor
Return the query info of the associated query- Specified by:
getQueryInfo
in interfaceParallelExecutor<BindingSet>
- Returns:
- the query info
-
getNextElement
protected BindingSet getNextElement() throws QueryEvaluationException
Description copied from class:LookAheadIteration
Gets the next element. Subclasses should implement this method so that it returns the next element.- Specified by:
getNextElement
in classLookAheadIteration<BindingSet,QueryEvaluationException>
- Returns:
- The next element, or null if no more elements are available.
- Throws:
QueryEvaluationException
-
-