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 for
FedXService nodes, which wrap SERVICE expressions.
Uses the union scheduler to execute the task- Author:
- Andreas Schwarte
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final BindingSetprotected Exceptionprotected final FederationContextprotected booleanprotected static final org.slf4j.Loggerprotected CloseableIteration<BindingSet>protected final FedXServiceprotected final FederationEvalStrategy -
Constructor Summary
ConstructorsConstructorDescriptionParallelServiceExecutor(FedXService service, FederationEvalStrategy strategy, BindingSet bindings, FederationContext federationContext) -
Method Summary
Modifier and TypeMethodDescriptionvoidHandle the result appropriately, e.g.voiddone()Inform the controlling instance that some job is done from a different thread.protected BindingSetGets the next element.Return the query info of the associated queryprotected voidCalled byAbstractCloseableIteration.close()when it is called for the first time.booleanReturn true if this executor is finished or abortedvoidrun()voidToss some exception to the controlling instanceMethods inherited from class org.eclipse.rdf4j.common.iteration.LookAheadIteration
hasNext, next, removeMethods inherited from class org.eclipse.rdf4j.common.iteration.AbstractCloseableIteration
close, isClosedMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.eclipse.rdf4j.common.iteration.CloseableIteration
streamMethods inherited from interface java.util.Iterator
forEachRemaining
-
Field Details
-
log
protected static final org.slf4j.Logger log -
service
-
strategy
-
bindings
-
federationContext
-
rightIter
-
finished
protected boolean finished -
error
-
-
Constructor Details
-
ParallelServiceExecutor
public ParallelServiceExecutor(FedXService service, FederationEvalStrategy strategy, BindingSet bindings, FederationContext federationContext) - Parameters:
service-strategy-bindings-federationContext-
-
-
Method Details
-
run
public void run() -
addResult
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
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
Description copied from interface:ParallelExecutorReturn the query info of the associated query- Specified by:
getQueryInfoin interfaceParallelExecutor<BindingSet>- Returns:
- the query info
-
getNextElement
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>
-