If ABORT is used as return value, the sender should close the channel all
the way to the upstream source. The ABORT will not guarantee that no
more events are delivered since this is impossible in a concurrent
environment. The consumer should accept subsequent events and close/clean
up when the Close or Error event is received.
Though ABORT has the value -1, any value less than 0 will act as an
abort.
A 0 indicates that the consumer is willing to receive subsequent events
at full speeds.
Any value more than 0 will indicate that the consumer is becoming
overloaded and wants a delay of the given milliseconds before the next
event is sent. This allows the consumer to pushback the event delivery
speed.
long accept(PushEvent<? extends T> event)
throws java.lang.Exception
Accept an event from a source. Events can be delivered on multiple
threads simultaneously. However, Close and Error events are the last
events received, no more events must be sent after them.
Parameters:
event - The event
Returns:
less than 0 means abort, 0 means continue, more than 0 means
delay ms
Throws:
java.lang.Exception - to indicate that an error has occurred and that no
further events should be delivered to this
PushEventConsumer