package org.juxtapose.streamline.producer.executor;
import com.lmax.disruptor.EventHandler;
public class RunnableEventHandler implements EventHandler<RunnableEvent> {
private final long ordinal;
private final long numberOfConsumers;
public RunnableEventHandler( int inOrdinal, int inNumberOfComsumenrs )
{
ordinal = inOrdinal;
numberOfConsumers = inNumberOfComsumenrs;
}
@Override
public void onEvent(RunnableEvent event, long sequence, boolean endOfBatch)throws Exception
{
if( event.getExecutable() == null )
return;
if ( !((event.getHash() % numberOfConsumers) == ordinal))
return;
event.getExecutable().run();
}
}