Emitter: Clarify contract of "emit". (#5486)

* Emitter: Clarify contract of "emit".

* New wording
This commit is contained in:
Gian Merlino 2018-03-14 14:07:08 -07:00 committed by Roman Leventov
parent fdd55538e1
commit e096a8d6c5
1 changed files with 11 additions and 0 deletions

View File

@ -28,6 +28,17 @@ import java.io.IOException;
public interface Emitter extends Closeable, Flushable
{
void start();
/**
* Emit an event. This method must not throw exceptions or block.
*
* If an implementation receives too many events and internal queues fill up, it should drop events rather than
* blocking or consuming excessive memory.
*
* If an implementation receives input it considers to be invalid, or has an internal problem, it should deal with
* that by logging a warning rather than throwing an exception. Implementations that log warnings should consider
* throttling warnings to avoid excessive logs, since a busy Druid cluster can emit a high volume of metric events.
*/
void emit(Event event);
@Override