2012-03-22 12 views
7

Quiero aprender el Disruptor framework. ¿Quién puede darme un ejemplo de helloworld que pueda ejecutarse en el método principal con el lenguaje de programación Java?Disruptor helloworld ejemplo

+0

Ver [El código de ejemplo más simple y efectiva de LMAX disruptor] [1]. [1]: http://stackoverflow.com/questions/9168602/the-simplest-and-actual-example-code-of-lmax-disruptor – Heri

Respuesta

3

Aquí uno más de mi lado. Intenté un ejemplo de disruptor usando librerías Lmax de código abierto.
Creo que la idea detrás del uso del disruptor lmax (no las partes internas del disruptor) es crear un despachador de mensajes y registrar el oyente del evento como un consumidor.

Crea un disruptor, especificando el tipo de mensaje.

Disruptor<Message> disruptor = new Disruptor<Message>(Message.EVENT_FACTORY, 2048, exec);` 

crea un controlador

final EventHandler<Message> handler = new EventHandler<Message>() { 
     // event will eventually be recycled by the Disruptor after it wraps 
     public void onEvent(final Message event, final long sequence, final boolean endOfBatch) throws Exception { 
      Integer value = event.getMsg(); 
      if(value % 10000 == 0){ 
       System.out.println("ValueEvent: " + value + " Sequence: " + sequence); 
       double timeINnanos = (System.nanoTime()-startTime); 
       double timetaken = (timeINnanos/1e9); 
       System.out.println("Time Taken till now in sec " + timetaken); 
      } 
     } 
    }; 

manejador de Registro con el disruptor

  disruptor.handleEventsWith(handler); 

Start que disruptor y pasar el buffer circular regresado a su productor

  RingBuffer<Message> ringBuffer = disruptor.start(); 
     Producer producer = new Producer(ringBuffer); 

código completo se puede encontrar aquí Github link

0

te sugeriría que echar un vistazo en el directorio de prueba en el código LMAX LMAX Source Code Test Directory. En mi opinión, es la mejor fuente para todo tipo de cosas que puedes hacer con el LMAX. Por el simple ejemplo, eche un vistazo en el siguiente enlace Simple Example

También sugeriría que eche un vistazo a la DSL examples.