Class DefaultProducerWorkerFactory<OutputT,MetricsT>
java.lang.Object
io.aleph0.yap.core.worker.DefaultProducerWorkerFactory<OutputT,MetricsT>
- Type Parameters:
OutputT- the type of the outputMetricsT- the type of the metrics
- All Implemented Interfaces:
Measureable<MetricsT>,ProducerWorkerFactory<OutputT,MetricsT>
public class DefaultProducerWorkerFactory<OutputT,MetricsT>
extends Object
implements ProducerWorkerFactory<OutputT,MetricsT>
A
ProducerWorkerFactory that creates and manages multiple MeasuredProducerWorkers
and tracks their metrics.
This factory uses a BinaryOperator to aggregate the metrics of all active workers. If
there are no active workers, the metrics will be null. If there is one active worker, the metrics
will be the metrics of that worker. If there are multiple active workers, the metrics will be the
result of applying the BinaryOperator to the metrics of all active workers.
-
Constructor Summary
ConstructorsConstructorDescriptionDefaultProducerWorkerFactory(Supplier<MeasuredProducerWorker<OutputT, MetricsT>> workerSupplier, BinaryOperator<MetricsT> metricsAggregator) -
Method Summary
Modifier and TypeMethodDescriptionNon-destructive check of the metrics.Destructive read of the metrics.Creates a newworker
-
Constructor Details
-
DefaultProducerWorkerFactory
public DefaultProducerWorkerFactory(Supplier<MeasuredProducerWorker<OutputT, MetricsT>> workerSupplier, BinaryOperator<MetricsT> metricsAggregator)
-
-
Method Details
-
newProducerWorker
Description copied from interface:ProducerWorkerFactoryCreates a newworker- Specified by:
newProducerWorkerin interfaceProducerWorkerFactory<OutputT,MetricsT> - Returns:
- the new worker
-
checkMetrics
Description copied from interface:MeasureableNon-destructive check of the metrics. This should be used to check the state of metrics without clearing them, for example in aTaskController.- Specified by:
checkMetricsin interfaceMeasureable<OutputT>- Returns:
- the metrics
-
flushMetrics
Description copied from interface:MeasureableDestructive read of the metrics. This should be used to check and reset the state of metrics, for example by the metrics checking thread.- Specified by:
flushMetricsin interfaceMeasureable<OutputT>- Returns:
- the metrics
-