Class TestFirehoseProducerWorker<T>

java.lang.Object
io.aleph0.yap.messaging.test.TestFirehoseProducerWorker<T>
Type Parameters:
T - the type of the message to produce
All Implemented Interfaces:
io.aleph0.yap.core.Measureable<FirehoseMetrics>, io.aleph0.yap.core.ProducerWorker<Message<T>>, io.aleph0.yap.core.worker.MeasuredProducerWorker<Message<T>,FirehoseMetrics>, FirehoseProducerWorker<Message<T>>

public class TestFirehoseProducerWorker<T> extends Object implements FirehoseProducerWorker<Message<T>>
A FirehoseProducerWorker that produces messages using a Supplier according to a Scheduler. This is useful for testing and debugging purposes, as it allows you to simulate the behavior of a firehose producer without actually sending the messages anywhere.

The firehose will produce messages at a rate determined by the Scheduler. The scheduler will determine the delay between each message produced. The firehose will produce messages until the given message supplier returns null.

  • Constructor Details

    • TestFirehoseProducerWorker

      public TestFirehoseProducerWorker(Supplier<Message<T>> messageSupplier)
    • TestFirehoseProducerWorker

      public TestFirehoseProducerWorker(Scheduler scheduler, Supplier<Message<T>> messageSupplier)
  • Method Details

    • produce

      public void produce(io.aleph0.yap.core.Sink<Message<T>> sink) throws InterruptedException
      Specified by:
      produce in interface io.aleph0.yap.core.ProducerWorker<T>
      Throws:
      InterruptedException
    • checkMetrics

      public FirehoseMetrics checkMetrics()
      Specified by:
      checkMetrics in interface io.aleph0.yap.core.Measureable<T>
    • flushMetrics

      public FirehoseMetrics flushMetrics()
      Specified by:
      flushMetrics in interface io.aleph0.yap.core.Measureable<T>