Siddhi Я не получаю ответа на совокупный запрос

У меня есть простой запрос, как это:

define stream myEventStream (userId string, price int);  
define stream outputStream (avgPrice double, userId string);  

@info(name = 'aQuery')  
from myEventStream#window.time(5000)  
select avg(price) as avgPrice, userId group by userId  
insert into outputStream;

Когда я добавляю обратный вызов запроса, я не получаю от него никакого ответа.

    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 секунд. Что мне здесь не хватает? Пожалуйста помоги. Спасибо.


person yshadow    schedule 22.09.2016    source источник


Ответы (1)


Ну, проблема была в том, что я закрыл среду выполнения сразу после кода, который создает поток событий. Тем не менее, я мог отправлять сообщения во время выполнения, хотя оно уже было закрыто. Никаких исключений.

person yshadow    schedule 22.09.2016