Class LogStreamProcessor
- java.lang.Object
- 
- org.nuxeo.lib.stream.computation.log.LogStreamProcessor
 
- 
- All Implemented Interfaces:
- StreamProcessor
 
 public class LogStreamProcessor extends Object implements StreamProcessor - Since:
- 9.3
 
- 
- 
Field SummaryFields Modifier and Type Field Description protected LogManagermanagerprotected booleanneedRegisterprotected static com.fasterxml.jackson.databind.ObjectMapperOBJECT_MAPPERprotected List<ComputationPool>poolsprotected Settingssettingsprotected LogStreamManagerstreamManagerprotected Topologytopology
 - 
Constructor SummaryConstructors Constructor Description LogStreamProcessor(LogStreamManager streamManager)LogStreamProcessor(LogManager manager)Deprecated.
 - 
Method SummaryAll Methods Instance Methods Concrete Methods Modifier and Type Method Description booleandrainAndStop(Duration timeout)Stop computations when input streams are empty.protected Codec<Record>getCodecForStreams(String name, Set<String> streams)protected List<List<LogPartition>>getDefaultAssignments(ComputationMetadataMapping meta)protected StringgetEdgeName(Topology.Vertex edge)LatencygetLatency(String computationName)Returns the latency for a computation.longgetLowWatermark()Returns the low watermark for all the computations of the topology.longgetLowWatermark(String computationName)Returns the low watermark for the computation.StreamProcessorinit(Topology topology, Settings settings)Initialize streams, but don't run the computationsprotected List<ComputationPool>initPools()booleanisDone(long timestamp)Returns true if all messages with a lower timestamp has been processed by the topology.booleanisTerminated()True if there is no active processing threads.voidshutdown()Shutdown immediately.voidstart()Run the initialized computations.booleanstop(Duration timeout)Try to stop computations gracefully after processing a record or a timer within the timeout duration.StringtoJson(Map<String,String> meta)Returns a JSON representation of the processor, this includes the list of streams and computations with their settings along with the topology.booleanwaitForAssignments(Duration timeout)Wait for the computations to have assigned partitions ready to process records.
 
- 
- 
- 
Field Detail- 
managerprotected final LogManager manager 
 - 
poolsprotected List<ComputationPool> pools 
 - 
streamManagerprotected LogStreamManager streamManager 
 - 
needRegisterprotected final boolean needRegister 
 - 
OBJECT_MAPPERprotected static final com.fasterxml.jackson.databind.ObjectMapper OBJECT_MAPPER 
 
- 
 - 
Constructor Detail- 
LogStreamProcessor@Deprecated public LogStreamProcessor(LogManager manager) Deprecated.
 - 
LogStreamProcessorpublic LogStreamProcessor(LogStreamManager streamManager) 
 
- 
 - 
Method Detail- 
initpublic StreamProcessor init(Topology topology, Settings settings) Description copied from interface:StreamProcessorInitialize streams, but don't run the computations- Specified by:
- initin interface- StreamProcessor
 
 - 
startpublic void start() Description copied from interface:StreamProcessorRun the initialized computations.- Specified by:
- startin interface- StreamProcessor
 
 - 
waitForAssignmentspublic boolean waitForAssignments(Duration timeout) throws InterruptedException Description copied from interface:StreamProcessorWait for the computations to have assigned partitions ready to process records. The processor must be started. This is useful for writing unit test.Returns trueif all computations have assigned partitions during the timeout delay.- Specified by:
- waitForAssignmentsin interface- StreamProcessor
- Throws:
- InterruptedException
 
 - 
isTerminatedpublic boolean isTerminated() Description copied from interface:StreamProcessorTrue if there is no active processing threads.- Specified by:
- isTerminatedin interface- StreamProcessor
 
 - 
toJsonpublic String toJson(Map<String,String> meta) Description copied from interface:StreamProcessorReturns a JSON representation of the processor, this includes the list of streams and computations with their settings along with the topology.- Specified by:
- toJsonin interface- StreamProcessor
 
 - 
getEdgeNameprotected String getEdgeName(Topology.Vertex edge) 
 - 
stoppublic boolean stop(Duration timeout) Description copied from interface:StreamProcessorTry to stop computations gracefully after processing a record or a timer within the timeout duration. If this can not be done within the timeout, shutdown and returns false.- Specified by:
- stopin interface- StreamProcessor
 
 - 
drainAndStoppublic boolean drainAndStop(Duration timeout) Description copied from interface:StreamProcessorStop computations when input streams are empty. The timeout is applied for each computation, the total duration can be up to nb computations * timeoutReturns trueif computations are stopped during the timeout delay.- Specified by:
- drainAndStopin interface- StreamProcessor
 
 - 
shutdownpublic void shutdown() Description copied from interface:StreamProcessorShutdown immediately.- Specified by:
- shutdownin interface- StreamProcessor
 
 - 
getLowWatermarkpublic long getLowWatermark() Description copied from interface:StreamProcessorReturns the low watermark for all the computations of the topology. Any message with an offset below the low watermark has been processed. The returned watermark is local to this processing node.- Specified by:
- getLowWatermarkin interface- StreamProcessor
 
 - 
getLatencypublic Latency getLatency(String computationName) Description copied from interface:StreamProcessorReturns the latency for a computation. This works also for distributed computations.- Specified by:
- getLatencyin interface- StreamProcessor
 
 - 
getLowWatermarkpublic long getLowWatermark(String computationName) Description copied from interface:StreamProcessorReturns the low watermark for the computation. Any message with an offset below the low watermark has been processed by this computation and its ancestors. The returned watermark is local to this processing node, if the computation is distributed the global low watermark is the minimum of all nodes low watermark.- Specified by:
- getLowWatermarkin interface- StreamProcessor
 
 - 
isDonepublic boolean isDone(long timestamp) Description copied from interface:StreamProcessorReturns true if all messages with a lower timestamp has been processed by the topology.- Specified by:
- isDonein interface- StreamProcessor
 
 - 
initPoolsprotected List<ComputationPool> initPools() 
 - 
getDefaultAssignmentsprotected List<List<LogPartition>> getDefaultAssignments(ComputationMetadataMapping meta) 
 
- 
 
-