Class ParallelServiceExecutor
- java.lang.Object
-
- org.eclipse.rdf4j.common.iteration.AbstractCloseableIteration<E>
-
- org.eclipse.rdf4j.common.iteration.LookAheadIteration<BindingSet>
-
- org.eclipse.rdf4j.federated.evaluation.concurrent.ParallelServiceExecutor
-
- All Implemented Interfaces:
AutoCloseable,Runnable,Iterator<BindingSet>,CloseableIteration<BindingSet>,ParallelExecutor<BindingSet>
public class ParallelServiceExecutor extends LookAheadIteration<BindingSet> 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>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> 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 queryprotected voidhandleClose()Called byAbstractCloseableIteration.close()when it is called for the first time.booleanisFinished()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
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
-
Methods inherited from interface java.util.Iterator
forEachRemaining
-
-
-
-
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> 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> 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>- Returns:
- The next element, or null if no more elements are available.
- Throws:
QueryEvaluationException
-
handleClose
protected void handleClose()
Description copied from class:AbstractCloseableIterationCalled byAbstractCloseableIteration.close()when it is called for the first time. This method is only called once on each iteration. By default, this method does nothing.- Specified by:
handleClosein classAbstractCloseableIteration<BindingSet>
-
-