Class ParallelServiceExecutor
java.lang.Object
org.eclipse.rdf4j.common.iteration.AbstractCloseableIteration<BindingSet>
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
Modifier and TypeFieldDescriptionprotected final BindingSet
protected Exception
protected final FederationContext
protected boolean
protected static final org.slf4j.Logger
protected CloseableIteration
<BindingSet> protected final FedXService
protected final FederationEvalStrategy
-
Constructor Summary
ConstructorDescriptionParallelServiceExecutor
(FedXService service, FederationEvalStrategy strategy, BindingSet bindings, FederationContext federationContext) -
Method Summary
Modifier and TypeMethodDescriptionvoid
Handle the result appropriately, e.g.void
done()
Inform the controlling instance that some job is done from a different thread.protected BindingSet
Gets the next element.Return the query info of the associated queryprotected void
Called byAbstractCloseableIteration.close()
when it is called for the first time.boolean
Return true if this executor is finished or abortedvoid
run()
void
Toss some exception to the controlling instanceMethods 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 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
-
addResult
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>
- Parameters:
res
-
-
toss
Description copied from interface:ParallelExecutor
Toss some exception to the controlling instance- Specified by:
toss
in interfaceParallelExecutor<BindingSet>
- Parameters:
e
-
-
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
Description copied from interface:ParallelExecutor
Return the query info of the associated query- Specified by:
getQueryInfo
in interfaceParallelExecutor<BindingSet>
- Returns:
- the query info
-
getNextElement
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>
- Returns:
- The next element, or null if no more elements are available.
- Throws:
QueryEvaluationException
-
handleClose
protected void handleClose()Description copied from class:AbstractCloseableIteration
Called 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:
handleClose
in classAbstractCloseableIteration<BindingSet>
-