question: @ Override public void flush ( ) { if ( ! queue . isEmpty ( ) ) { List < AlertStreamEvent > events = new ArrayList < > ( ) ; queue . drainTo ( events ) ; events . forEach ( null ) ; LOG . info ( "Flushed {} alerts" , events . size ( ) ) ; } lastFlushTime . set ( System . currentTimeMillis ( ) ) ; }
target:  Flush will be called in synchronous way like StormBolt.execute() as Storm OutputCollector is not thread-safe