отправка событий таймера в Esper 4.8

У меня есть CSV-файл в качестве входного адаптера, и я хочу отправлять событие из CSV-файла каждую секунду. Например, у меня есть A1, A2, A3, B1, B2 и B3. Я хочу отправить A1, A2 и A3 в первую секунду, а для B1, B2 и B3 - во вторые две. В этой ссылке http://esper.codehaus.org/esperio-4.0.0/doc/reference/en/html_single/index.html#csv-timer есть объяснение отправки событий таймера. Означает ли это отправку события в соответствии с отметкой времени, установленной в файле csv? Если правда, то как его использовать? Я прочитал эту ссылку, но я не понимаю, как ее использовать. Если ссылку нельзя использовать для отправки события в секунду, есть ли другой способ установить событие, чтобы оно могло отправляться каждую секунду?


person user0550    schedule 28.07.2013    source источник


Ответы (1)


Вы можете программно управлять часами в движке esper, отправляя события времени в дополнение к вашим событиям данных.

// Esper Configuration
ClassLoader cl = EpnService.class.getClassLoader();
URL configURL = cl.getResource("aem.esper.cfg.xml");
Configuration config = new Configuration();
config.configure(configURL);

// Obtain esper service instance
EPServiceProvider esperSvc_ = EPServiceProviderManager.getProvider("TEST", config);

// Disable internal engine timer (if not already done so in esper config file)
TimerControlEvent controlEvent = new TimerControlEvent(TimerControlEvent.ClockType.CLOCK_EXTERNAL);
esperSvc_.getEPRuntime().sendEvent(controlEvent);

// Set engine time
long timeInMillis = System.currentTimeMillis(); // or use some other time from your data
CurrentTimeEvent timeEvent1 = new CurrentTimeEvent(timeInMillis);
esperSvc_.getEPRuntime().sendEvent(timeEvent1);

// Inject events into engine
Object eventObject1 = new Object();
esperSvc_.getEPRuntime().sendEvent(eventObject1);

// Fast forward engine time
timeInMillis += 1000; // Add 1 second
CurrentTimeEvent timeEvent2 = new CurrentTimeEvent(timeInMillis);
esperSvc_.getEPRuntime().sendEvent(timeEvent2);

// Inject more events into engine
Object eventObject2 = new Object();
esperSvc_.getEPRuntime().sendEvent(eventObject2);
person R Dub    schedule 29.08.2013