Skip to content

Instantly share code, notes, and snippets.

@anidotnet
Last active August 29, 2015 14:21
Show Gist options
  • Save anidotnet/225d4e5600103b1b8f1c to your computer and use it in GitHub Desktop.
Save anidotnet/225d4e5600103b1b8f1c to your computer and use it in GitHub Desktop.
package org.abstractclass;
import com.lmax.disruptor.EventTranslatorOneArg;
import com.lmax.disruptor.RingBuffer;
import com.lmax.disruptor.dsl.Disruptor;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* @author Anindya Chatterjee.
*/
public class WriteEventProducer {
private static Logger logger = LoggerFactory.getLogger(WriteEventProducer.class);
private final Disruptor<WriteEvent> disruptor;
public WriteEventProducer(Disruptor<WriteEvent> disruptor) {
this.disruptor = disruptor;
}
private static final EventTranslatorOneArg<WriteEvent, String> TRANSLATOR_ONE_ARG =
new EventTranslatorOneArg<WriteEvent, String>() {
public void translateTo(WriteEvent writeEvent, long sequence, String message) {
logger.debug("Inside translator");
writeEvent.set(message);
}
};
public void onData(String message) {
logger.info("Publishing " + message);
// publish the message to disruptor
disruptor.publishEvent(TRANSLATOR_ONE_ARG, message);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment