2012-03-22 22 views
7

Voglio imparare lo Disruptor framework. Chi può darmi un esempio di helloworld che può essere eseguito nel metodo principale con il linguaggio del programma Java?Disruptor helloworld esempio

+0

Sede [Il codice di esempio più semplice e reale di LMAX Disruptor] [1]. [1]: http://stackoverflow.com/questions/9168602/the-simplest-and-actual-example-code-of-lmax-disruptor – Heri

risposta

3

qui ancora una da parte mia. Ho provato un esempio di disgregatore usando le librerie Lmax open source.
Penso che l'idea dietro l'uso di lmax disgregatore (non l'interno del disruptor) sia quella di creare un dispatcher di messaggi e registrare un listener di eventi come il consumatore.

Si crea un Disruptor, con la specifica del tipo di messaggio.

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

si crea un gestore

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); 
      } 
     } 
    }; 

gestore Registrati con disgregatore

  disruptor.handleEventsWith(handler); 

di inizio che disgregatore e passare il ringbuffer restituita al produttore

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

codice completo può essere trovato qui Github link

0

io ti suggerirei di dare un'occhiata alla directory test nel codice LMAX LMAX Source Code Test Directory. Secondo me è la migliore fonte per tutti i tipi di cose che puoi fare con LMAX. Per l'esempio semplice, si prega di dare un'occhiata al seguente link Simple Example

Vorrei anche suggerire di prendere uno sguardo al DSL examples.