2016-09-22 3 views
0

에서 어떤 응답을하지 않습니다.Siddhi 락은 내가 이런 간단한 쿼리를 집계 쿼리

runtime.addCallback("aQuery", new QueryCallback() { 
     @Override 
     public void receive(long timeStamp, Event[] inEvents, Event[] removeEvents) { 
      EventPrinter.print(timeStamp, inEvents, removeEvents); 
     } 
    }); 

나는 다른 스레드에서 메시지를 생산하고 있습니다 :

final AtomicInteger counter = new AtomicInteger(0); 
    final Random rnd = new Random(System.currentTimeMillis()); 
    ExecutorService executor = Executors.newSingleThreadExecutor(); 
    executor.submit(() -> { 
     while (counter.getAndIncrement() < 100) { 
      try { 
       handler.send(new Object[]{"user1", rnd.nextInt(100)}); 
       handler.send(new Object[]{"user2", rnd.nextInt(100)}); 
       handler.send(new Object[]{"user3", rnd.nextInt(100)}); 
       System.out.println("Sent: " + counter.get()); 
       Thread.sleep(1000); 
      } catch (InterruptedException e) { 
       Thread.currentThread().interrupt(); 
       throw new RuntimeException(e); 
      } 
     } 
    }); 

나는 각 5 초 결과를 기대하고있다. 내가 여기서 무엇을 놓치고 있니? 도와주세요. 감사합니다.

답변

0

글쎄, 문제는 이벤트 스트림을 생성하는 코드 바로 다음에 런타임을 종료했기 때문입니다. 그럼에도 불구하고 이미 종료되었지만 런타임에 메시지를 보낼 수있었습니다. 예외 없음.