org.apache.flume

## Interface SinkProcessor

- All Superinterfaces:
    Configurable, LifecycleAware
  All Known Implementing Classes:
    AbstractSinkProcessor, DefaultSinkProcessor, FailoverSinkProcessor, LoadBalancingSinkProcessor

      public interface SinkProcessor
      extends LifecycleAware, Configurable

  Interface for a device that allows abstraction of the behavior of multiple sinks, always assigned to a SinkRunner

  A sink processors `process()` method will only be accessed by a single runner thread. However configuration methods such as `Configurable.configure(org.apache.flume.Context)` may be concurrently accessed.

  See Also:
    `Sink`, `SinkRunner`, `SinkGroup`

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `Sink.Status` | `process()` Handle a request to poll the owned sinks.
    `void` | `setSinks(List<Sink> sinks)` Set all sinks to work with.

    - ### Methods inherited from interface org.apache.flume.lifecycle.LifecycleAware

      `getLifecycleState, start, stop`

    - ### Methods inherited from interface org.apache.flume.conf.Configurable

      `configure`

- - ### Method Detail

    - #### process

          Sink.Status process()
                              throws EventDeliveryException

      Handle a request to poll the owned sinks.

      The processor is expected to call Sink.process() on whatever sink(s) appropriate, handling failures as appropriate and throwing `EventDeliveryException` when there is a failure to deliver any events according to the delivery policy defined by the sink processor implementation. See specific implementations of this interface for delivery behavior and policies.

      Returns:
        Returns `READY` if events were successfully consumed, or `BACKOFF` if no events were available in the channel to consume.
      Throws:
        `EventDeliveryException` - if the behavior guaranteed by the processor couldn't be carried out.

    - #### setSinks

          void setSinks(List<Sink> sinks)

      Set all sinks to work with.

      Sink specific parameters are passed to the processor via configure

      Parameters:
        `sinks` - A non-null, non-empty list of sinks to be chosen from by the processor

Copyright © 2009-2016 Apache Software Foundation. All Rights Reserved.