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 forFedXServicenodes, which wrap SERVICE expressions. Uses the union scheduler to execute the task- Author:
- Andreas Schwarte
-
-
Field Summary
Fields Modifier and Type Field Description protected BindingSetbindingsprotected Exceptionerrorprotected FederationContextfederationContextprotected booleanfinishedprotected static org.slf4j.Loggerlogprotected CloseableIteration<BindingSet,QueryEvaluationException>rightIterprotected FedXServiceserviceprotected FederationEvalStrategystrategy
-
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 voidaddResult(CloseableIteration<BindingSet,QueryEvaluationException> res)Handle the result appropriately, e.g.voiddone()Inform the controlling instance that some job is done from a different thread.protected BindingSetgetNextElement()Gets the next element.QueryInfogetQueryInfo()Return the query info of the associated querybooleanisFinished()Return true if this executor is finished or abortedvoidrun()voidtoss(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
-
-
-
-
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:ParallelExecutorHandle the result appropriately, e.g. add it to the result iteration. Take care for synchronization in a multithreaded environment- Specified by:
addResultin interfaceParallelExecutor<BindingSet>
-
toss
public void toss(Exception e)
Description copied from interface:ParallelExecutorToss some exception to the controlling instance- Specified by:
tossin interfaceParallelExecutor<BindingSet>
-
done
public void done()
Description copied from interface:ParallelExecutorInform the controlling instance that some job is done from a different thread. In most cases this is a no-op.- Specified by:
donein interfaceParallelExecutor<BindingSet>
-
isFinished
public boolean isFinished()
Description copied from interface:ParallelExecutorReturn true if this executor is finished or aborted- Specified by:
isFinishedin interfaceParallelExecutor<BindingSet>- Returns:
- whether the execution is finished
-
getQueryInfo
public QueryInfo getQueryInfo()
Description copied from interface:ParallelExecutorReturn the query info of the associated query- Specified by:
getQueryInfoin interfaceParallelExecutor<BindingSet>- Returns:
- the query info
-
getNextElement
protected BindingSet getNextElement() throws QueryEvaluationException
Description copied from class:LookAheadIterationGets the next element. Subclasses should implement this method so that it returns the next element.- Specified by:
getNextElementin classLookAheadIteration<BindingSet,QueryEvaluationException>- Returns:
- The next element, or null if no more elements are available.
- Throws:
QueryEvaluationException
-
-