java 에서 실시간으로 데이터를 입력하는 내용을 만들기 위해 알아보았습니다만... 방법을 잘 몰라서 ; 질문을 드리고자 합니다.
1.실시간 이벤트를 사용 하는 방법은 spark streaming, Esper 이 있는 것으로 알고 있는데요. 이 이외에 다른 쉬운 방법이 있나요?
2.Esper 에서 실시간 이벤트 사용 방법을 모르겠습니다.
본 사이트 : http://www.espertech.com/
설명서 : http://www.espertech.com/esper/esper-documentation/
설명 사이트
http://www.notforme.kr/archives/579
http://javacan.tistory.com/entry/Esper-Beginner-1-Quick-Start
http://sungsoo.github.io/2014/01/02/overview-of-esper.html
gitHub 적용 사이트
https://github.com/not-for-me/EsperStudyProject
https://github.com/espertechinc/esper
EPL 실험 해볼 수 있는 사이트
http://esper-epl-tryout.appspot.com/epltryout/mainform.html
를 참조해서 만들어 보았습니다.
public void EesperExample2(UserInfoDto udto) {
Configuration config = new Configuration();
config.addEventType("SearchYoutubeVo", SearchYoutubeVo.class.getName());
EPServiceProvider epService = EPServiceProviderManager.getDefaultProvider(config);
String epl = "select * , count(*) from SearchYoutubeVo.win:time(5 minutes)";
List<SearchYoutubeVo> vo;
EPStatement statement = epService.getEPAdministrator().createEPL(epl);
ExampleListener example = new ExampleListener();
statement.addListener(example);
int EventCreateNum = 5;
//for(int i = 0; i < EventCreateNum; i++ ){
try {
vo = youtubeSearchService.searchYoutube(udto);
} catch (Exception e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
try { Thread.sleep(500); } catch (InterruptedException e) { e.printStackTrace(); }
//}
}
public class ExampleListener implements UpdateListener {
public void update(EventBean[] newEvents, EventBean[] oldEvents) {
EventBean event = newEvents[0];
System.out.println("Avg Rating of NFM = " + event.get("viewCount") + " Total Count: " + event.get("videoId"));
System.out.println(event.get("count(*)"));
}
}
'vo = youtubeSearchService.searchYoutube(udto);' 는 youtube 키워드를 입력해서 이를 가지고오는 내용입니다.
'UserInfoDto udto' 유저의 관련된 정보를 가지고 오는 것입니다.
그런데 제가 하고 싶은 것은 처음에 youtubeSearchService.searchYoutube(udto); 사용해서 데이터를 가조고온 후, 5분 간격으로 데이터를 가지고 오고 싶은 것인데.... 방법을 전혀 모르겠습니다.
그런데 ExampleListener 는 전혀 실행되지 않고 있습니다.