Class ThrottledWriter
java.lang.Object
com.northconcepts.datapipeline.core.DataObject
com.northconcepts.datapipeline.core.Endpoint
com.northconcepts.datapipeline.core.DataEndpoint
com.northconcepts.datapipeline.core.DataWriter
com.northconcepts.datapipeline.core.ProxyWriter
com.northconcepts.datapipeline.meter.MeteredWriter
com.northconcepts.datapipeline.throttle.ThrottledWriter
A proxy that limits the rate (bytes/second) at which data is written.
-
Nested Class Summary
Nested classes/interfaces inherited from class com.northconcepts.datapipeline.core.DataEndpoint
DataEndpoint.State -
Field Summary
Fields inherited from class com.northconcepts.datapipeline.core.DataEndpoint
lastRecord, PRODUCT, PRODUCT_VERSION, VENDOR, XML_INPUT_FACTORY_KEYFields inherited from class com.northconcepts.datapipeline.core.Endpoint
BUFFER_SIZE, captureElapsedTime, DEFAULT_READ_BUFFER_SIZEFields inherited from class com.northconcepts.datapipeline.core.DataObject
id, log, name, TIMESTAMP_FORMAT -
Constructor Summary
ConstructorsConstructorDescriptionThrottledWriter(DataWriter writer, int bytesPerSecond) Creates a writer that limits writing tobytesPerSecondon average, counting each record's estimated size in bytes.ThrottledWriter(DataWriter writer, int unitsPerSecond, RecordMeter.MeterUnit units) Creates a writer that limits writing tounitsPerSecondon average, counting bytes or records depending onunits. -
Method Summary
Modifier and TypeMethodDescriptionaddExceptionProperties(DataException exception) Adds this endpoint's current state to aDataException.Returns whether the limit counts records or their estimated size in bytes (defaults to BYTES).protected RecordinterceptRecord(Record record) Overridden by subclasses to transform, drop, or observe a record on its way through this proxy.setMeasure(RecordMeter.MeterUnit measure) Sets whether the limit counts records or their estimated size in bytes (defaults to BYTES).Methods inherited from class com.northconcepts.datapipeline.meter.MeteredWriter
close, getMeterMethods inherited from class com.northconcepts.datapipeline.core.ProxyWriter
available, getNestedWriter, map, map, open, setNestedDataWriter, setNestedDataWriter, writeImplMethods inherited from class com.northconcepts.datapipeline.core.DataWriter
getNestedEndpoint, getRootEndpoint, getRootWriter, getWriter, writeMethods inherited from class com.northconcepts.datapipeline.core.DataEndpoint
decrementRecordCount, enableJmx, getLastRecord, getRecordCount, getRecordCountAsBigInteger, getRecordCountAsString, incrementRecordCount, isRecordCountBigInteger, resetRecordCount, toStringMethods inherited from class com.northconcepts.datapipeline.core.Endpoint
addElapsedtime, assertClosed, assertNotOpened, assertOpened, finalize, getClosedOn, getDescription, getElapsedTime, getElapsedTimeAsString, getOpenedOn, getOpenElapsedTime, getOpenElapsedTimeAsString, getSelfTime, getSelfTimeAsString, getState, isCaptureElapsedTime, isClosed, isOpen, setCaptureElapsedTime, setDescription
-
Constructor Details
-
ThrottledWriter
Creates a writer that limits writing tobytesPerSecondon average, counting each record's estimated size in bytes. -
ThrottledWriter
Creates a writer that limits writing tounitsPerSecondon average, counting bytes or records depending onunits.
-
-
Method Details
-
getThrottle
- Specified by:
getThrottlein interfaceThrottled
-
getMeasure
Returns whether the limit counts records or their estimated size in bytes (defaults to BYTES). -
setMeasure
Sets whether the limit counts records or their estimated size in bytes (defaults to BYTES). -
interceptRecord
Description copied from class:ProxyWriterOverridden by subclasses to transform, drop, or observe a record on its way through this proxy.Contract for subclasses (see also
docs/authoring/ProxyWriter.md):- Return the record (possibly modified) to forward it to the nested
DataWriter. - Return
nullto drop the record; the framework will not write it downstream. - Throw to fail the pipeline; the framework wraps the throwable in a
DataExceptionwith.setRecord(record). - The nested
DataWriteris opened and closed for you; do not write to it here. - Do not call
DataEndpoint.incrementRecordCount()here.
- Overrides:
interceptRecordin classMeteredWriter- Throws:
Throwable
- Return the record (possibly modified) to forward it to the nested
-
addExceptionProperties
Description copied from class:EndpointAdds this endpoint's current state to aDataException. Since this method is called whenever an exception is thrown, subclasses should override it to add their specific information.- Overrides:
addExceptionPropertiesin classMeteredWriter
-